WordPressを使っていると日常的にスパムコメントが送信されてきます。
そして、そのほとんどはサイト(コメント投稿者のURL)に何らかのURLが入力されています。
これを逆手に取って、サイト(コメント投稿者のURL)欄にURLが入力されていればブロックするというfancyなスパム対策を考えてみました。
※通常はCaptchaプラグインとかを使うのがおすすめですが、いろいろな物を導入したくないという場合用です。
手順
導入は手順簡単です。functions.php
あたりに以下の内容を追加してください。
add_filter( 'pre_comment_approved', 'example_filter_handler', 99, 2 );
function example_filter_handler( $approved, $commentdata )
{
if ( $commentdata['comment_author_url'] != "" ) {
return new WP_Error();
}
return $approved;
}
return new WP_Error();
の部分をreturn 'spam';
とすればスパムフォルダに、return 'trash';
とすればごみ箱フォルダに分類することもできます。
一般のコメント投稿者向けに注意書き
スパムでない場合でもURL付きコメントを送信される場合もありますので、このfilterを導入する場合はひとこと注意書きを付けておいた方が無難かと思います。
もしくは、スタイルシートでURL欄を消してしまってもいいかと思います。
.comment-form-url { display: none }
リンク
pre_comment_approved | Hook | WordPress Developer Resources
https://developer.wordpress.org/reference/hooks/pre_comment_approved/