纯代码实现WordPress热门文章功能

在【纯代码实现WordPress相关文章功能】一文中,介绍了不用插件,在文章后面插入“相关文章”列表的方法。除了“相关文章”外,“热门文章”也很常见。“热门文章”插件很多,比较出名的当属WordPress Popular Posts,使用它可以很容易添加“热门文章”Widget,也可以通过插入wpp_get_mostpopular()函数,在特定区域显示“热门文章”。

然而,插件多了是会影响网站速度的,能否不用插件就可以显示“热门文章”呢?答案是肯定的。本站文后的“热门文章”就是用一段代码实现的:

热门文章

本博客文章后面的热门文章

将下面一段代码添加到相应位置,比如添加到single.php文件中,就可以实现文章末尾显示“热门文章”了。

<h2>热门文章</h2>
 <ul id="popular-posts">
 <?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 6");  
 foreach ($result as $post) {
 setup_postdata($post);
 $postid = $post->ID;
 $title = $post->post_title;
 $commentcount = $post->comment_count;
 if ($commentcount != 0) { ?>
 <li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
 <?php echo $title ?></a> {<?php echo $commentcount ?> 个评论}</li>
 <?php } } ?>
 </ul>

第三行的数字6表示:显示6篇文章,可以根据自身情况自定义;

可以通过id=”popular-posts”定义相关文章区域的CSS样式。例如:在style.css文件中添加如下CSS可以添加一个背景图片

#popular-posts{
background: url("http://www.jeriffcheng.com/wp-content/themes/thesis_18/custom/images/lookhere.gif") no-repeat scroll 25em 20px transparent;
}
热门文章自定义CSS

自定义热门文章CSS

  6Comments

  1. 奇芳阁   •  

    貌似这个是按照评论数的多少排的热门文章吧!有没有按照一个月的点击率实现热门文章呢?

  2. 北极鱼   •  

    测试一下发图

  3. 软件街小秘   •  

    为了减少数据库查询,俺已经去掉次功能

    • Jeriff Cheng   •     Author

      数据库查询速度很快的;软件街速度瓶颈在于背景图片太多,应该合并。此外,未设置 leverage browser caching。

  4. 昆虫   •  

    看到你很多都自己在wordpress中插入代码,其实你是否有研究过插件方式与直接插入代码方式对博客速度的影响是不同的?

    • Jeriff Cheng   •     Author

      相同量的代码,用插件方式加载 比 直接插入主题文件中,要慢很多。

Leave a Reply

Your email address will not be published. Required fields are marked *