web-dev-qa-db-ja.com

含む場合はコメントを自動削除

特定の文字列が含まれている場合にコメントを自動削除する方法

私はこれで試したが動作しません:

add_action( 'transition_comment_status', 'my_approve_comment_callback', 10, 3 );

function my_approve_comment_callback( $new_status, $old_status, $comment ) {
    if (strpos($comment->comment_content, 'dog') !== false) {
            wp_delete_comment( $comment->comment_ID, true );
    }       
}

私も試してみました:

wp_list_comments('callback=better_comment');

function better_comment($comment, $args, $depth) {
    if (strpos($comment->comment_content, 'dog') !== false) {
            wp_delete_comment( $comment->comment_ID, true );
    }   
}

何もしない=(

1
J. Doe Cd

この目的のために 'comment_post'アクションを使用することをお勧めします。コメントがデータベースに保存されたときに発生します。

add_action('comment_post', 'my_comment_post_callback', 10, 3);

function my_comment_post_callback($comment_id, $comment_approved, $commentdata) {
    if (strpos($commentdata['comment_content'], 'dog') !== false) {
        $post_url = get_permalink($commentdata['comment_post_ID']);
        wp_delete_comment($comment_id, true);
        wp_redirect($post_url);
        exit;
    }       
}
1
Milan Petrovic