评论的好处站长们都是知道的,只要不是垃圾评论,网站上的评论是多多益善,虽然看着会有点累,不过一来表明了网站的受欢迎度,二来也可以增进站长和读者之间的交流。
所以在评论的样式上多花些功夫也是值得的。
1. 突出显示作者的回复
打开comments.php文件,在评论循环<?php foreach comment as $comment) { ?>后加上以下内容:
<?php $isByAuthor = false; if($comment->comment_author_email == get_the_author_email()) { $isByAuthor = true; } ?>
接着找到表示评论的代码(不同主题中该代码内容可能不同):
<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
如果评论是作者发表的,那么我们需要输出authorcomment类:
<li class="<?php echo $oddcomment; ?> <?php if($isByAuthor ) { echo 'authorcomment';} ?>" id="comment-<?php comment_ID() ?>">
最后为作者评论创建CSS类。打开style.css文件,插入以下代码(颜色可以自己选择):
.authorcomment{ color:#fff; font-weight:bold; background:#068; }
2. 激活嵌套评论
很多人似乎都不怎么喜欢嵌套评论,不过从视觉效果上来说,嵌套评论还是有优势的,尤其是在所有人的评论样式都是一样的时候。
要激活嵌套评论也很简单,WordPress后台菜单(设置>讨论>激活嵌套评论)就有这么个选项,你也可以选择嵌套评论可允许的最大层数。
3. 禁止评论中的HTML链接
禁止评论中的HTML链接,目的就是防止spam和过度推广。
只要在function.php文件里加上下面的代码就可以完全禁用评论里的HTML链接了:
function plc_comment_post( $incoming_comment ) { $incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']); $incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] ); return( $incoming_comment ); } function plc_comment_display( $comment_to_display ) { $comment_to_display = str_replace( ''', "'", $comment_to_display ); return $comment_to_display; } add_filter('preprocess_comment', 'plc_comment_post', '', 1); add_filter('comment_text', 'plc_comment_display', '', 1); add_filter('comment_text_rss', 'plc_comment_display', '', 1); add_filter('comment_excerpt', 'plc_comment_display', '', 1);
4. 订阅评论
如果每当有人回复你的评论时,都会有一封邮件通知你,那么你就不会错过和别人的每一次交流了。
Subscribe to Comments就是一款可以订阅评论的插件。激活这款插件后,评论框下面就会多出一个链接,你可以点击这个链接订阅评论。
5. 显示博客评论总数
利用$wpdb对象显示博客当前总评论数量。你希望在博客的某个位置显示这个数量,就在相应的文件里加上下面的代码:
<?php $numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'"); if (0 < $numcomms) $numcomms = number_format($numcomms); echo "There's ".$numcomms." total comments on my blog"; ?>
其中的变量$numcomms包含了你的WordPress博客上的评论总数。
6.显示若干条最新评论
WordPress的一个自带widget有显示最新评论的功能,不过你也可以选择不用widget。在希望显示最新评论的版块对应的文件里添加下面的代码:
<?php $pre_HTML =""; $post_HTML =""; global $wpdb; $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10"; $comments = $wpdb->get_results($sql); $output = $pre_HTML; $output .= " <ul>"; foreach ($comments as $comment) { $output .= " <li>".strip_tags($comment->comment_author) .":" . "<a href="" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "" title="on ".$comment->post_title . "">" . strip_tags($comment->com_excerpt)."</a></li>"; } $output .= " </ul>"; $output .= $post_HTML; echo $output; ?>
7. 显示特定时间段内评论次数最多的文章列表
很多网站在侧栏列出XX月最受欢迎的文章,利用的也是这个原理。
如果你希望在侧栏显示这个列表,就在sidebar.php里加入下面的代码:
<ul> <?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2010-08-01' AND '2010-09-01' ORDER BY comment_count DESC LIMIT 0 , 10"); foreach ($result as $topten) { $postid = $topten->ID; $title = $topten->post_title; $commentcount = $topten->comment_count; if ($commentcount != 0) { ?> <li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li> <?php } } ?> </ul>
别忘了修改第三行里的时间段。
分类:新闻资讯