首页 > 博客技巧 > Wordpress本月热门文章(无插件)

Wordpress本月热门文章(无插件)

2010年3月21日 浏览次数(1,046)
发表评论 阅读评论

         应网友的要求,奉上Wordpress整站热门文章及分类热门文章的实现代码.其实这段代码也是Dream最开始也从网络搜索而来的,经过修改可以支持分类热门文章功能..实现原理是通过读取某篇文章的评论数来调用相关的文章,其实准确来说应该是”热评文章”.

/*
$termId:分类目录ID,为0时是检索所有分类目录
$posts_num:显示热评文章的数量
$days:检索多少天内的热评文章
*/
// 获得热评文章
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->posts
WHERE `post_type` = ‘post’ AND TO_DAYS( now( ) ) – TO_DAYS( `post_date` ) < $days
ORDER BY `comment_count` DESC LIMIT 0 , $posts_num “;

}

//分类热评文章
else {
$sql=”SELECT `ID` , `post_title` , `comment_count`  FROM `wp_posts`
INNER JOIN `wp_term_relationships` ON (`wp_posts`.`ID` = `wp_term_relationships`.`object_id`)
INNER JOIN `wp_term_taxonomy` ON (`wp_term_relationships`.`term_taxonomy_id` =  `wp_term_taxonomy`.`term_taxonomy_id`)
WHERE   1=1
AND `wp_term_taxonomy`.`taxonomy` = ‘category’
AND `wp_term_taxonomy`.`term_id` = $termId
AND `wp_posts`.`post_type` = ‘post’
GROUP BY `wp_posts`.`ID`
ORDER BY `comment_count` DESC LIMIT 0 , 10  “;

}

$posts = $wpdb->get_results($sql);
$output = “”;
foreach ($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); }  ?>

2010-02-05补充内容…………………………………….
再补充一下,今天用了下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,这样在输出的热门文章里,就不会出现之前未到定时时间发布的文章了.

分类: 博客技巧
  1. 2010年3月22日10:58 | #1

    很有用,收藏,以后捣鼓WP的时候能用上。

  2. 2010年8月22日19:47 | #2

    学习~~~~~~咯 :roll:

  3. vian
    2010年9月10日18:55 | #3

    不知道用什么的形容词 B S你,窃了别人的文章不写转载,就连wordpress的版权和inove的版权也删掉了,好笑。 :evil:

  4. 2011年11月12日14:12 | #4

    有没有热门阅读?不是热门评论。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: