代码完成WordPress上一篇和下一篇以及相关文章功用
最近博主在弄WordPress网站,也体会了许多不同的WordPress主题,其间不乏一些优异主题,如博主曾经介绍的知更鸟主题,确实是一个十分优异的CMS主题,各个方面的SEO细节做得很完善,也因而造成了它在互联网过于众多,带来审美疲劳。
曾经博主建立WordPress便是觉得网站越酷炫越好,现在博主越来越喜爱简练而功用强大的主题,为此也特意购买了一些比较赏识的主题来体会一番。可是,有些主题实在是过于简练,许多有用的功用也被删除掉了,如有些主题文章页没有“上一篇和下一篇”,没有相关文章版块等。在我看来,这些是肯定不能省掉的,除了不利于搜索引擎优化,也相同不利于读者阅读体会。当然这些小功用能够经过各种插件来完结,可是我试了不少的插件感觉不尽人意,为此博主寻找了一些办法经过代码来完结这个小功用。
完结WordPress上一篇和下一篇代码办法
在你的模板文件夹下找到single.php文件,修正文章页模板文件,在文章内容下方可刺进以下代码:
<div class="nearbypost"> <div class="alignleft"><?php previous_post_link('« « %link'); ?></div> <div class="alignright"><?php next_post_link('%link » » '); ?></div> </div>当然也能够对款式进行布局,比方能够修正CSS款式如下:
.alignleft { float:left; text-align:left; margin-right:10px; } .alignright { float:rightright; text-align:rightright; margin-left:10px; }完结WordPress相关文章的三种办法
同理,找到文章页模板文件,在需求展现相关文章列表的当地添加如下代码。
办法一、标签相关
<ul id="tags_related"> <?php global $post; $post_tags = wp_get_post_tags($post->ID); if ($post_tags) { foreach ($post_tags as $tag) { // 获取标签列表 $tag_list[] .= $tag->term_id; } // 随机获取标签列表中的一个标签 $post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ]; // 该办法运用 query_posts() 函数来调用相关文章,以下是参数列表 $args = array( 'tag__in' => array($post_tag), 'category__not_in' => array(NULL), // 不包括的分类ID 'post__not_in' => array($post->ID), 'showposts' => 6, // 显现相关文章数量 'caller_get_posts' => 1 ); query_posts($args); if (have_posts()) { while (have_posts()) { the_post(); update_post_caches($posts); ?> <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); } else { echo '<li>* 暂无相关文章</li>'; } ?> </ul>PS:"不包括的分类ID" 指的是相关文章不显现该分类下的文章,可自定义将NULL改成文章分类的ID即可,多个ID就用半角逗号离隔,满意站长的多样化需求。由于这儿约束只显现6篇相关文章,所以不论给 query_posts() 的参数 tag__in 赋多少个值,都是只显现一个标签下的6 篇文章,除非第一个标签有1篇,第二个标签有2篇,第三个有3篇...若当时文章有多个标签对应,那么采纳的做法是随机获取一个标签的id,赋值给 tag__in 这个参数,获取该标签下的6篇文章。
办法二、分类相关
<ul id="cat_related"> <?php global $post; $cats = wp_get_post_categories($post->ID); if ($cats) { $args = array( 'category__in' => array( $cats[0] ), 'post__not_in' => array( $post->ID ), 'showposts' => 6, 'caller_get_posts' => 1 ); query_posts($args); if (have_posts()) { while (have_posts()) { the_post(); update_post_caches($posts); ?> <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); } else { echo '<li>* 暂无相关文章</li>'; } ?> </ul>此办法则是经过获取该文章的分类id,然后获取该分类下的6篇文章,来到达获取相关文章的意图。
办法三、作者相关
<ul id="author_related"> <?php global $post; $post_author = get_the_author_meta( 'user_login' ); $args = array( 'author_name' => $post_author, 'post__not_in' => array($post->ID), 'showposts' => 6, // 显现相关文章数量 'orderby' => date, // 按时刻排序 'caller_get_posts' => 1 ); query_posts($args); if (have_posts()) { while (have_posts()) { the_post(); update_post_caches($posts); ?> <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php } } else { echo '<li>* 暂无相关文章</li>'; } wp_reset_query(); ?> </ul>此办法是获取该文章作者的其他文章来充任相关文章,比较合适一些多个站长运营的网站。
结语:博主之所以坚持给网站添加上一篇和下一篇以及相关文章,是由于博主是做SEO的,站在搜索引擎的视点来说,上一篇和下一篇以及相关文章的链接不只能够添加搜索引擎蜘蛛抓取,并且也有利于网页权重值传递。站在用户的视点,相关的文章就好比是引荐,以及相关信息的进一步获取,对读者也是十分有利的。别的博首要弥补的便是,关于相关文章完结办法,博主是主张挑选第一种,标签往往更靠近主题。