【WordPress】不要なコメントを登録しないようにする
問題
WordPressのディスカッションの設定で、「n個以上のリンクを含んでいる場合は承認待ちにする」の設定はあるけど、リンクたっぷりのコメントを拒否する設定はできないの?
承認待ちやゴミ箱に、不要なコメントがたまるのがいやだ。
解答例
適当なフックを使って、明らかに迷惑コメントだと判断したものは、登録ができないようにする例。
フックは pre_comment_on_post を使った。
/** * My Custome SPAM Filter * * コメントの内容($_POST['comment'])などを見て相手にしたくないコメントに対してはwp_die()する */ function my_custome_spam_filter($comment_post_ID) { $comment = (isset($_POST['comment']) ? trim($_POST['comment']) : null); $author = (isset($_POST['author']) ? trim(strip_tags($_POST['author'])) : null); $email = (isset($_POST['email']) ? trim($_POST['email']) : null); $url = (isset($_POST['url']) ? trim($_POST['url']) : null); // URLが5つ以上含まれたら却下 if (substr_count($comment, 'http://') >= 5) { wp_die('URLが多すぎます'); } } add_action('pre_comment_on_post', 'my_custome_spam_filter');
下のような迷惑コメントは入ってこなくなる思います。
ナマズン 2023年5月24日 10:53
まじ神