在wordpress的后台设置中,有一键开启/关闭新文章的评论权限,或者设置旧文章发表多少天后,文章的评论功能会自动关闭,但是可以设置为最少一天的时间,不够灵活,不友好,不能满足我们一键关闭的目的,比如几小时前发表的文章,不能批量关闭评论。今天小编分享一个实现WordPress中一键打开/关闭评论功能的纯代码。
方法一
文章的评论功能会根据文章发表的时间自动关闭。对于旧文章,可以更灵活一点地使用以下方法:
/**
* WordPress一键关闭/开启评论功能
* 超过天数或小时数限制后自动关闭 WordPress 帖子的评论
*/
函数 lxtx_close_comments( $posts ) {
if ( !is_single() ) { return $posts; }
if ( time() – strtotime( $posts[0]->post_date_gmt ) > ( 30 * 24 * 60 * 60 ) ) {
$posts[0]->comment_status = ‘关闭’;
$posts[0]->ping_status = ‘关闭’;
}
返回 $posts;
}
add_filter(‘the_posts’, ‘lxtx_close_comments’);
上述代码的作用是文章发表超过30天后自动关闭该文章的评论功能。您可以根据需要修改第四行以更改天数或小时数。
方法二
根据文章的评论数自动关闭文章的评论功能,这个方法也不错:当评论数达到一定数量时,自动关闭WordPress文章的评论功能:
/**
* WordPress一键关闭/开启评论功能
* 当评论数达到一定数量时,自动关闭WordPress文章的评论功能
*/
函数 lxtx_disable_comments( $posts ) {
如果(!is_single()){
返回 $posts;
}
if ( $posts[0]->comment_count > 100 ) {
$posts[0]->comment_status = ‘禁用’;
$posts[0]->ping_status = ‘禁用’;
}
返回 $posts;
}
add_filter(‘the_posts’, ‘lxtx_disable_comments’);
方法三
数据库语句方法批量关闭或打开已发表文章的评论功能,这是对旧文章的评论功能的操作。因为数据库是直接操作的,所以建议操作前先备份数据库:
批量关闭评论:
更新 wp_post SET comment_status=’close’
批量打开评论:
更新 wp_post SET comment_status=’open’
一键开/关
请注意,此方法将一键关闭/打开所有文章/页面的评论功能,无论是新文章/页面还是旧文章/页面。
/**
* WordPress一键关闭/开启评论功能
*/
功能 close_open_comments( $posts ) {
$postids = array(‘110′,’119’);
if ( !empty( $posts ) && is_singular() && !in_array($posts[0]->ID,$postids) ) {
$posts[0]->comment_status = ‘关闭’;
$posts[0]->post_status = ‘关闭’;
}
返回 $posts;
}
add_filter(‘the_posts’, ‘close_open_comments’);
当然,您可能希望保留 ID 为 110 和 119(留言板或附属链接)的文章或页面的评论功能,并自己玩第 6 行。