WordPress实现一键开启或关闭评论功能的教程

WordPress实现一键开启或关闭评论功能的教程

近期关于网站评论问题一直有各种讨论,可以看出大家对评论功能还是比较在意的,随着国内对评论的把关越来越严,这个功能应该是值得知道的:“如何一键关闭或开启网站评论功能”。

WordPress实现一键开启或关闭评论功能的教程

在 WordPress 的后台设置中只能一键开启/关闭新文章的评论权限,对旧文章只能设置发布多少天后文章的评论功能自动关闭,最少可以设置为一天时间,这样就不够灵活了,比如几个小时以前发布的文章就无法执行批量关闭评论了…

根据文章发布的时间来自动关闭文章的评论功能

当然,对于旧文章可以稍微灵活一点使用以下方法:

  1. /**
  2.  * Wordpress 一键关闭/开启评论功能 – 龙笑天下
  3.  * http://www.ilxtx.com/close-or-open-wordpress-comments.html
  4.  * 超过限制天数或小时数后自动关闭 WordPress 文章的评论功能
  5.  */
  6. function lxtx_close_comments( $posts ) {
  7.     if ( !is_single() ) { return $posts; }
  8.     if ( time() – strtotime$posts[0]->post_date_gmt ) > ( 30 * 24 * 60 * 60 ) ) {
  9.         $posts[0]->comment_status = ‘closed’;
  10.         $posts[0]->ping_status    = ‘closed’;
  11.     }
  12.     return $posts;
  13. }
  14. add_filter( ‘the_posts’, ‘lxtx_close_comments’ );

上面的代码的作用是,文章发布超过 30 天后,就自动关闭这篇文章的评论功能。你可以根据自己的需要,修改第四行,改为多少天数或小时数。

根据文章的评论数量来自动关闭文章的评论功能

另外,这个方法也不错:当评论达到一定数量后自动关闭 WordPress 文章的评论功能~

  1. /**
  2.  * Wordpress 一键关闭/开启评论功能 – 龙笑天下
  3.  * http://www.ilxtx.com/close-or-open-wordpress-comments.html
  4.  * 当评论达到一定数量后自动关闭 WordPress 文章的评论功能
  5.  */
  6. function lxtx_disable_comments( $posts ) {
  7.     if ( !is_single() ) {
  8.         return $posts;
  9.     }
  10.     if ( $posts[0]->comment_count > 100 ) {
  11.         $posts[0]->comment_status = ‘disabled’;
  12.         $posts[0]->ping_status = ‘disabled’;
  13.     }
  14.     return $posts;
  15. }
  16. add_filter( ‘the_posts’, ‘lxtx_disable_comments’ );

上面的代码是当一篇文章的评论数量超过 100 条以后,自动关闭这篇文章的评论功能,请根据自己的需要,修改第  6  行的  100  为你想要的数量。

数据库语句方法来批量关闭或打开已发布文章的评论功能

这个是对旧文章的评论功能的操作。因为是直接操作数据库,故建议在操作前备份数据库先!

批量关闭评论:

  1. UPDATE wp_posts SET comment_status=’close

批量打开评论:

  1. UPDATE wp_posts SET comment_status=’open

一键关闭/开启 WordPress评论功能

注意:这个方法会一键关闭/开启所有文章/页面的评论功能,不论是新文章/页面还是旧文章/页面哦。

  1. /**
  2.  * Wordpress 一键关闭/开启评论功能 – 龙笑天下
  3.  * http://www.ilxtx.com/close-or-open-wordpress-comments.html
  4.  */
  5. function close_open_comments( $posts ) {
  6.     $postids = array(‘110′,’119’);
  7.     if ( !emptyempty$posts ) && is_singular() && !in_array($posts[0]->ID,$postids) ) {
  8.         $posts[0]->comment_status = ‘closed’;
  9.         $posts[0]->post_status = ‘closed’;
  10.     }
  11.     return $posts;
  12. }
  13. add_filter( ‘the_posts’, ‘close_open_comments’ );

当然,你可能会想保留 ID 为 110 和 119 等文章或页面的评论功能,则如第 6 行所示。

分享到 :
相关推荐

Leave a Reply

登录... 后才能评论