wordpress如何显示和分类相关的热门文章

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个想法

  1. dayseeker

    非常感谢楼主的两段代码 帮我解决了长期以来困扰的问题

    回复
  2. cyang

    博主,请问能不能不要插件就实现热门文章的方法,我现在一安装插件就会出现各种毛病

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据