如果用户以前评论过,如何检查COMMENT_POST操作?

时间:2018-12-23 作者:wpdev

我想在comment\\u post操作中检查用户是否对帖子发表了评论。所以我做了这个:

function checkUserComment( $comment_ID ) {

    $comment = get_comment( $comment_ID );
    $postID = $comment->comment_post_ID;
    $authorID = $comment->user_id;

    // If user commented this post already, don\'t update post meta.
    if( get_comments( array( \'post_id\' => $postID, \'user_id\' => $authorID ) ) )
        return;

    update_post_meta($postID, \'testMeta\', \'testValue\');

}

add_action( \'comment_post\', \'checkUserComment\', 10, 2 );
如果用户第一次发表评论,它必须不更新post\\u meta。但它无论如何都会更新post\\u meta。

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

WordPress Codex:

comment\\u post是在将注释插入数据库后立即触发的操作。

相反,我认为你想尝试的是preprocess_comment 不要发表评论。