最近有个客户询问小编如何让文章发布一个月之后自动关闭评论,其实这个功能实现起来很简单,用 time() 函数获取当前时间然后减去文章发布时间,然后判断差是否大于设置的时限,如果大于则将评论关闭即可,详细代码如下:

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' );

将以上代码加入到当前使用的 WordPress 主题的 functinos.php 文件即可实现文章发布超过一个月后就自动关闭评论的功能(PS:如果 php 的系统时间不正确可能造成文章评论关闭时间不正确的情况)。