给单篇文章的下面再加上几篇相关文章,这样如果访客阅读了某篇文章,还可以推荐同分类下,或者同标签的一些文章。实现这个功能最常见的插件就是 「无觅」 插件了。
下面先提供一个获取同属一个分类或标签的相关文章实现方法:
- <ul class="tags_related">
- <?php
- $post_tags = wp_get_post_tags($post->ID); //获取该文章的标签
- if ($post_tags) {
- foreach ($post_tags as $tag){
- // 获取标签 id 数组
- $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(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
- <?php endwhile;
- else : ?>
- <li> 无相关文章</li>
- <?php endif; }else{ ?>
- <?php $ashu_cats = wp_get_post_categories($post->ID); //获取该文章所属分类
- if( $ashu_cats ){
- $args = array(
- 'category__in' => array( $ashu_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(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
- <?php endwhile; endif; wp_reset_query();
- } } ?>
- </ul>
这样实现的相关文章只是一个文章标题列表,可根据自己的设计,修改成带缩略图外观像 「无觅」 的相关文章。。。