自动禁用带有自定义字段的注释

时间:2013-12-08 作者:Christopher

我有这个代码,可以根据发布日期在X天后禁用评论。如何使用自定义字段编辑此代码以基于特定日期自动关闭注释?非常感谢。

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

1 个回复
SO网友:s_ha_dum

编辑代码以使用自定义字段非常简单。。。

function close_comments( $posts ) {
  if ( !is_single() ) { 
    return $posts; 
  }
  $cmeta = get_post_meta($posts[0]->ID,\'your_field_name\',true);
  if ( $posts[0]->post_date_gmt < $cmeta ) {
    $posts[0]->comment_status = \'closed\';
    $posts[0]->ping_status    = \'closed\';
  }
  return $posts;
}
add_filter( \'the_posts\', \'close_comments\' );
不过,我不确定这种方法是否正确。

你真的只是野蛮地强行关闭状态。这是一种“仅显示”的黑客行为。它根本不会更改数据库状态我想我会重新考虑整个使用过程wp_cron

结束

相关推荐

Add filter to comments loop?

我正在制作一个插件,用于存储推荐人数据以供评论。我已经创建了数据库表,并且在进行注释时正确存储了数据。现在,我想为每个注释在注释块上附加一个自定义div。如何向注释循环添加过滤器?我想说“如果这个评论ID在我的表中有一个推荐人,那么在我的特殊div中打印出推荐人”。我可以自己写函数,我只需要在哪里注入函数的帮助。