日志评论特别多的时候你是如何处理的?如果评论者都是你的忠实读者,你是不是会逐一回复他们?你做得到吗?
我相信,多数博主都希望这样做,因为“读者是皇”,但这是一件挺难做到的事情,我们一般只回复问题性的评论,对于其他凑热闹式的一般评论,通常没有办法也一一回复。有没有考虑过将旧日志的评论功能关闭掉?如果你的时间有限,这倒是值得考虑的,方法很简单,也很多。
WordPress系统本身允许我们关闭日志评论功能,在后台的评论选项里就可以设置,但是如果我们选择了关闭评论功能,所有的日志都不能发表评论了,我们一般也不会这样做,除非我们的博客不需要评论。单篇日志在发布时或在编辑状态下也可以禁止评论,但那样做相当麻烦,特别是日志数量已经很多的博客,操作起来很费时,不值得这样做。
1.参考下面一段function函数,我以前使用过,通用性很强,Wordpress3.1下运行良好:
<?php
function close_comments( $posts ) {
if ( !is_single() ) { return $posts; }
if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( 30 * 24 * 60 * 60 ) ) {
$posts[0]->comment_status = 'closed';
$posts[0]->ping_status = 'closed';
}
return $posts;
}
add_filter( 'the_posts', 'close_comments' );
?>
放到主题functons.php文件中就可以了。代码中的数字“30”是指发表超过30天的日志将会关闭评论功能,读者不能再对其发表评论了。可以设置长一些,比如60天, 120天。
如果你不愿意修改functions.php这个文件,不要紧,将这段代码做成一个插件也可以的,在标签<?php的后面加上一行注释即可,如:
/* Plugin Name: Close Comment */
然后保存为一个插件文件,这样Wordpress就会识别到这是一个插件了。Wordpress插件库也有一款能够关闭旧日志评论功能的插件可用—— Comment Timeout。
2.通过运行SQL语句也可以关闭日志评论功能,登录SQL数据库管理后台:
运行
UPDATE wp_posts SET comment_status = 'closed'; //关闭所有的日志评论功能;
运行
UPDATE wp_posts SET comment_status = 'registered_only'; //只有注册用户才能发表评论;
运行
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2011-01-01' AND post_status = 'publish'; // 关闭2011年01月01日之前发表的日志评论功能,可以设定成你想要的其它日期
需要注意的一点是,对SQL数据库的操作存在一定的风险,操作前应该先做好备份。
评论就像鸡肋 丢了可惜 食之无味
方法很实用,谢谢
升级的话就不能用了吧?
如果是主题升级的话,第一种方法需要重新修改主题的functions.php文件;如果是WordPress升级,两种方法都不受影响的。
有点奇怪!
确实很有用,特别是评论多的时候。
十分感谢你的材料。