2012年6月9日星期六

精通WordPress主题-6: 直接调用最多留言文章

上一节介绍了如何使用Wordpress模板代码直接调用最新文章,最新留言和随机文章。经QQ上一位读者的咨询,才想起来忘记了介绍热门文章的调用方法。

我们给出一份热门文章列表,要么是根据文章浏览数排序,要么是根据文章留言数排序。如果想根据文章浏览数排序,可以使用GaMerz的WP-postview插件。如果想按最多留言来给出热门文章列表,那可以看看Blogohblog给出的下面这份代码:

<?php function most_popular_posts($no_posts = 5, $before = '<li>', $after = '</li>', $show_pass_post = false, $duration='') {
global $wpdb;
$request = "SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish'";
if(!$show_pass_post) $request .= " AND post_password =''";
if($duration !="") { $request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts";
$posts = $wpdb->get_results($request);
$output = '';
if ($posts) {
foreach ($posts as $post) {
$post_title = stripslashes($post->post_title);
$comment_count = $post->comment_count;
$permalink = get_permalink($post->ID);
$output .= $before . '<a href="' . $permalink . '" title="' . $post_title.'">' . $post_title . '</a> (' . $comment_count.')' . $after;
}
} else {
$output .= $before . "None found" . $after;
}
echo $output;
} ?>

把上面的这段PHP代码放到主题文件的header.php或function.php中, 然后在你想显示热门留言文章的地方调用即可。

<?php most_popular_posts(); ?>

可用参数包括文章数,每条文章前面(before =)和后面的内容(after)。

来源于 精通WordPress主题-6: 直接调用最多留言文章 | 帕兰映像

没有评论:

发表评论