非插件实现 WordPress 热门文章列表  

Wordpress整站热门文章及分类热门文章的实现代码.实现原理是通过读取某篇文章的评论数来调用相关的文章,其实准确来说应该是"热评文章".

// 获得热评文章
function simple_get_most_review($termId=0,$posts_num=10, $days=30){
global $wpdb;
//所有热评文章
if($termId==0){
$sql = "SELECT `ID` , `post_title` , `comment_count` FROM $wpdb->postsforeach ($posts as $post){
$overPost=$post->post_title;
$output .= "\n<li><a href= \"".get_permalink($post->ID)."\" rel=\"bookmark\" title=\"".$post->post_title."\" >".$overPost."</a></li>";
}
echo $output;
}
将上面代码加到你的functions.php文件里,然后在需要调用热门文章的地方函数就行了.
所有分类热评文章:
<?php if (function_exists('simple_get_most_viewed')) {simple_get_most_review(0,10,31); }  ?>
单个分类文章热评:
<?php if (function_exists(''simple_get_most_viewed')) {simple_get_most_review($category->term_id,10,31); }  ?>
 
再补充一下,今天用了下wordpress的文章定时发布功能,发现不是很好用,预发布的文章虽然不会出现在文章列表中,但还是可以通过文件的链接访问,就是说实际上文章已经发布出来了,只是没有输出并显示出来而非.
所以上面的代码也是要相应的改动改动,增加一个查询条件:
 
AND `wp_posts`.`post_status` <> 'future'
即分别在下面这两句查询语句后面新增一行查询条件来过滤掉未发布出来的文章.
WHERE `post_type` = 'post' AND TO_DAYS( now( ) ) – TO_DAYS( `post_date` ) < $days
AND `wp_posts`.`post_type` = 'post'
OK,这样在输出的热门文章里,就不会出现之前未到定时时间发布的文章了.

欢迎大佬支持本博客的发展 -- Donate --

本文链接:非插件实现 WordPress 热门文章列表

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 陈老师,百度”非插件 热门文章”这篇文章是第一个啊,佩服,厉害。

  2. 哈哈 我好喜欢你的这个滑动解锁的功能+你的相关文章和眼神阅读的样式,能请教下吗?

  1. 没有通告