代码实现WordPress一键开启/关闭评论功能

最近关注网站评论问题,我们发现发现一些技术性文章有各种评论留言,可以看出评论功能对于一个网站还是很有必要的,但是随着国内修改部门对评论的把关越来越严,因此评论功能还是需要设置一键关闭或开启功能,这样才能安全有效。我们知道在 wordpress 的后台设置中有一键开启/关闭新文章的评论权限,或者对旧文章设置发布多少天后文章的评论功能自动关闭,但是最少可以设置为一天时间,这样就不够灵活了不友好不能满足我们一键关闭的目的,比如几个小时以前发布的文章就无法执行批量关闭评论了…

方法一

根据文章发布的时间来自动关闭文章的评论功能,对于旧文章可以稍微灵活一点使用以下方法:

  1. /**
  2.  * WordPress一键关闭/开启评论功能
  3.  * 超过限制天数或小时数后自动关闭WordPress文章的评论功能
  4.  */
  5. function lxtx_close_comments( $posts ) {
  6.     if ( !is_single() ) { return $posts; }
  7.     if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( 30 * 24 * 60 * 60 ) ) {
  8.         $posts[0]->comment_status = 'closed';
  9.         $posts[0]->ping_status    = 'closed';
  10.     }
  11.     return $posts;
  12. }
  13. add_filter( 'the_posts', 'lxtx_close_comments' );

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

方法二

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

  1. /**
  2.  * WordPress一键关闭/开启评论功能
  3.  * 当评论达到一定数量后自动关闭WordPress文章的评论功能
  4.  */
  5. function lxtx_disable_comments( $posts ) {
  6.     if ( !is_single() ) {
  7.         return $posts;
  8.     }
  9.     if ( $posts[0]->comment_count > 100 ) {
  10.         $posts[0]->comment_status = 'disabled';
  11.         $posts[0]->ping_status = 'disabled';
  12.     }
  13.     return $posts;
  14. }
  15. add_filter( 'the_posts', 'lxtx_disable_comments' );

方法三

数据库语句方法来批量关闭或打开已发布文章的评论功能,这个是对旧文章的评论功能的操作。因为是直接操作数据库,故建议在操作前备份数据库先:

  1. 批量关闭评论:
  2. UPDATE wp_post SET comment_status=’close’
  3. 批量打开评论:
  4. UPDATE wp_post SET comment_status=’open’

一键关闭/开启

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

  1. /**
  2.  * WordPress一键关闭/开启评论功能
  3.  */
  4. function close_open_comments( $posts ) {
  5.     $postids = array('110','119');
  6.     if ( !empty( $posts ) && is_singular() && !in_array($posts[0]->ID,$postids) ) {
  7.         $posts[0]->comment_status = 'closed';
  8.         $posts[0]->post_status = 'closed';
  9.     }
  10.     return $posts;
  11. }
  12. add_filter( 'the_posts', 'close_open_comments' );

当然,你可能会想保留 ID 为 110 和 119(留言板或友情链接)等文章或页面的评论功能,则自行对第 6 行进行发挥。最后,如果开启评论的话,则要对评论把好关,防止垃圾评论泛滥哈!

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/97220

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注

51建站客服微信二维码
点击这里购买