SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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

下のような迷惑コメントは入ってこなくなる思います。

関連するメモ

コメント(1)

ナマズン 2023年5月24日 10:53

まじ神