今天就来说说如何在博客的文章页中添加相关文章。网上有很多显示相关文章的插件,不过我想博客中能不能插件尽量不用,所以今天就介绍一下如何在代码中添加相关文章。
网上有介绍了五种代码添加的方法:
方法一:标签相关。
方法二:分类相关。
方法三:标签相关,SQL获取。
方法四:分类相关,SQL获取。
方法五:作者相关。
有人计算过这些代码的效率,测算的时间如下:
方法一:0.18067908287048 秒
方法二:0.057158946990967 秒
方法三:0.037126064300537 秒
方法四:0.045628070831299 秒
方法五:0.023991823196411 秒根据他们计算的成果,我使用了效率第二,但是实用性更强的分类相关,SQL获取方式,代码如下:
-
- <div id="postnavi">
-
- <h2>您可能还会对这些文章感兴趣!</h2>
-
- <ul id="cat_related">
-
- <?php
-
- $cats = wp_get_post_categories($post->ID);
-
- if ($cats) {
-
- $related = $wpdb->get_results("
-
- SELECT post_title, ID
-
- FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
-
- WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
-
- AND {$wpdb->prefix}term_taxonomy.taxonomy = 'category'
-
- AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
-
- AND {$wpdb->prefix}posts.post_status = 'publish'
-
- AND {$wpdb->prefix}posts.post_type = 'post'
-
- AND {$wpdb->prefix}term_taxonomy.term_id = '" . $cats[0] . "'
-
- AND {$wpdb->prefix}posts.ID != '" . $post->ID . "'
-
- ORDER BY RAND( )
-
- LIMIT 6");
-
- if ( $related ) {
-
- foreach ($related as $related_post) {
-
- ?>
-
- <li>* <a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li>
-
- <?php } } else { ?>
-
- <li>* 暂无相关文章</li>
-
- <?php } }?>
-
- </ul>
-
- </div>
这种方式是获取相关文章分类下的文章时候是以SQL语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts().这种方式效率会比调用query_posts()函数更快些。
把上面那段代码放在你博客相应主题下的single.php中,我是放在我之前写的一篇显示上一篇和下一篇文章的这段代码之后,是在文章页最后显示,在评论之前。大家可以根据自己的需求进行添加。显示的结果见我博客中文章页下。

DC Farm小程序二维码
扫一扫添加博客小程序
2012年5月19日 上午11:35 沙发
已经将贵站连接加好
2012年5月19日 下午1:22 板凳
如果有图效果更好!!!!!!!!!
2012年5月19日 下午1:29 地板
嗯 好建议下次写文章时,再用些实际操作的图片,这样更形象。@站长
2012年5月19日 下午8:53 4楼
还不错,嘿嘿!
2012年5月19日 下午9:28 1层
@艾伦 你的站收录情况不错啊 , 我的不知道是不是我之前改过版,和固定链接的原因,百度收录一直不好。对了 你有没有到其他论坛或是博客发外链?
2012年10月21日 上午11:09 5楼
直接使用的插件实现相关文章效果
2012年10月21日 下午4:11 1层
@水木 这里就是想要给大家介绍一下非插件实现方式 ,插件用多了,服务器会变慢,所以介绍这种非插件方式 。