非插件实现wordpress相关文章功能

其实在wordpress的文章中插入相关文章这个小的细节是非常好的,一是方便自己以后查看资料,也方便了网友检索有用信息,所以也算的上是博客中的礼貌细节了的。

以前觉得有个插件很好用的,但是鉴于我的blog运行速度下降了,所以只好不用插件了的,其实也就是多添加了一行代码而已,只是把那个插件给删除了的。在模板根目录下找到single.php,在合适的地方添加以下这段代码:

<h2>Related Posts</h2>
<ul id="tags_related">
<?php
$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(); ?> <?php comments_number(‘ ‘,’(1)’,'(%)’); ?></a></li>
<?php endwhile; else : ?>
    <li> 暂无相关文章</li>
<?php endif; wp_reset_query(); } ?>
</ul>

其中的<?php comments_number(‘ ‘,'(1)’,'(%)’); ?>可以自行去掉,因为我觉得和自己的这个模板有点不协调,当然也可以保留的;修改showposts后面的参数设定显示篇数,默认是6篇。

效果如下(上面的那个是插件实现的,下面的是代码实现的):

相关文章

comments (2)

  1. Dec 27, 2010 | COSXY

    算了,我不折腾了,
    博主有联系方式没有啊,想咨询一下百度联盟广告的事情。。。。

  2. Dec 30, 2010 | sky

    不好意思,好久不用qq了啊,邮箱吧 :cry:

Leave a Comment