WP_COMMENT_QUERY()显示“受密码保护”的注释?

时间:2015-07-29 作者:Christine Cooper

似乎循环通过wp_comment_query() 带着论点post_status 设置为publish 还列出了发布在受密码保护的帖子上的评论。

这是正确的行为还是错误?我如何避免在提交给受密码保护的帖子的评论中循环?

我查了数据库wp_comments 表中,似乎没有相关条目可供使用。

使用查询监视器插件,我可以检查SQL查询:

SELECT *
FROM wp_comments JOIN wp_posts
ON wp_posts.ID = wp_comments.comment_post_ID
WHERE ( comment_approved = \'1\' )
AND wp_posts.post_status IN (\'publish\')
AND wp_posts.post_type IN (\'post\')
ORDER BY wp_comments.comment_date_gmt DESC
LIMIT 8
如果您使用wp_comment_query() 显示评论(例如在前端),然后显示发布在上的评论password protected 帖子是循环的。

1 个回复
最合适的回答,由SO网友:bonger 整理而成

这不是虫子(喘息!)真的只是没有提供。要做到这一点,您必须添加一个过滤器,例如

add_filter( \'comments_clauses\', function ( $pieces, $query ) {
    if ( empty( $query->query_vars[\'wpse_no_password\'] ) ) return $pieces;
    global $wpdb;
    $pieces[ \'where\' ] .= $wpdb->prepare( \' AND \' . $wpdb->posts . \'.post_password = %s\', \'\' );
    return $pieces;
}, 10, 2 );

$args = array( \'post_status\' => \'publish\', \'wpse_no_password\' => 1 );
$query = new WP_Comment_Query( $args );

结束

相关推荐

Comments on future posts

我已启用未来(计划)帖子显示为单个帖子,以便启用页面评论,但在我尝试发布评论时出现问题。我得到一个没有显示任何警告或错误的空白屏幕?我想在评论尚未发布的帖子时会出现问题。有没有办法对未来的帖子发表评论?