趣站酷软的作者Chada翻译了一篇BlogOhBlog的文章——《10个WordPress主题Hack技巧》,其中有一个技巧是关于如何“展示评论数最多的文章”的。
根据这个技巧,精博昨天制作了一篇《有史以来评论最多的10篇文章》,页面效果是很不错的,具体操作如下:
1. 在Header.php的最后添加以下代码:
<?php function most_popular_posts($no_posts = 10, $before = '<ul><li>', $after = '</li></ul>', $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;
} ?>
备注:
原代码上是没有<ul>这个标签的,我之所以加上这个标签,是因为如果不加的话,所展示的“评论数最多的文章”位置在FF浏览器下会有点偏左,原因不明。
2. 然后在文章(post)里面添加以下代码:
<?php most_popular_posts(); ?>
备注:
1. 我的WordPress是安装了一个叫做Exec-PHP的插件,所以才能够直接在文章里面插入PHP代码。
2. Exec-PHP插件我是用来整合其他博客的RSS Feed用的,一直都没有问题。
以上两个步骤弄完了,发表文章,在FireFox浏览器和IE7浏览器下查看页面显示都正常,但是在IE7浏览器下无法打开RSS Feed页面(即http://jingpin.org/feed/), 并且出现下面的错误警告:
CDATA 节未关闭。
行: 31 字符: 25<description><
@Estyle,谢谢关注。精博今后可能要多写点娱乐性的文章,技术类的东西我一直都是自己试过之后才发表的,很耗时间,并且看来也不怎么受欢迎。
- spam
- offensive
- disagree
- off topic
Like