Popularity Contest是个不错的插件,可以根据点击量,评价次数,trackbacks等计算一个文章的受欢迎程度,然后列出来。为了跟用户当前浏览的页面相关性更好,我做了一些修改。
这个插件有2个function可用
akpc_most_popular_in_cat和akpc_most_popular,分别是指定一个分类id或取当前分类和所有的排名。
但是akpc_most_popular_in_cat有一点问题,就是原来的sql语句是在show_top_ranked_in_cat里面的sql是
WHERE tt.term_id = ‘”.intval($cat_ID).”‘
这样,只能在一个分类里面查找,需要修改成支持多个分类id的。改成如下
WHERE tt.term_id in (“.$cat_ID.”)
这样就支持多个分类id了,还有一个问题是取的当前的相关分类id,我们已经解决了。在sidebar.php里面加入如下代码,即可。根据不同的theme,可能需要做些调整。
<li id="hot-article" class="sb1"> <h2 class="widgettitle">热门文章</h2><ul class="pop"> <?php if ( function_exists('akpc_most_popular') ) : ?> <?php if (is_category()) { //echo $cat; $categories= get_categories('child_of='.$cat); $categoryIDS = array($cat); foreach ($categories as $category) { array_push($categoryIDS, $category->term_id); } $categoryIDS = implode(",", $categoryIDS); akpc_most_popular_in_cat(10, "<li>", "</li>", $categoryIDS) ; }else if ( is_single()){ $categories = get_the_category(); $categoryIDS = array(); foreach ($categories as $category) { array_push($categoryIDS, $category->term_id); } $categoryIDS = implode(",", $categoryIDS); akpc_most_popular_in_cat(10, "<li>", "</li>", $categoryIDS) ; }else{ ?> <?php akpc_most_popular($limit=10); ?> <?php } endif; ?></ul> </li>
《 “wordpress如何显示和分类相关的热门文章” 》 有 3 条评论
问问 怎么实现在 某个分类下调用 此分类的随机文章和热门文章…
非常感谢楼主的两段代码 帮我解决了长期以来困扰的问题
博主,请问能不能不要插件就实现热门文章的方法,我现在一安装插件就会出现各种毛病