この WordPress ブログには100日に数十のスパムコメントがあります。多いときにはXNUMX個を超えることもあります。私はすべてのコメントをゴミ箱に移動し、通常のコメントだけを復元し、残りの部分を永久に削除しています。
また、コメントの長さが5単語以上250単語以下の場合にのみコメントが実行されるようにコードを追加しました。一部のスパムコメントの長さが長すぎて削除するのが不便で、最大文字長制限を設定しており、一部のスパムコメントは内容がないか、1~2語になっている場合があり、最小長も制限しました。
5単語以上の場合にのみコメントが提出されるようにしましたが、最近含まれて内容がない空のコメントが走る現象が発生しました。これに関してリサーチをしてみると見えないタグのため、そんな現象が発生する可能性があるそうですね。そのため、タグを削除した状態でコメントの長さをチェックするようにコードを修正しました。😄

WordPressでコメント長制限設定でスパムをブロックする方法(空白のコメントを実行しないようにする)
WordPress サイト訪問者が増えれば、スパムコメントも盛り上がります。特にチャットGPTなどAIを利用したコメントも増加しています。
スパムコメントはシルクです WordPress唯一の問題ではありません。ティーストーリーでも過去数年の間に何の意味もないスパムコメントがたくさん走っています。ティーストーリーでスパムフィルター機能を提供していますが、私のティーストーリーブログにはそのようなスパムフィルターを突き抜けて、毎日複数のコメントが走っていますね😄
私はすべてのコメントをゴミ箱に移動し、通常のコメントのみを回復する方法を使用しています。
また、コメントの長さが5語未満または250語を超える場合は、コメント自体が走らないようにコードを追加しました。コメントの内容を入力してもコメントの長さを満たしていない場合は、「コメントは少なくとも5ワード以上でなければなりません」などの警告が表示されます。

HTMLタグが入力されると警告が表示されるようにするコードも追加しました。

そして、コメントコンテンツの長さを満たさない場合、またはタグが入力された場合、コメント登録ボタンは無効になります。
コメントの長さを制限したい場合は、JavaScriptコードを使用して、ユーザーがフロントエンドでコメントを入力したときにコメントの長さをチェックして、登録できないようにすることができます。これに伴い、バックエンドでも長さ制限をかけることで、バックエンドを通じて入ってくる無制限の長さのコメントをブロックすることができます。
このブログで使用されているJSコードは、次の記事で紹介しています。
ちなみにコメントで名前と内容を入力しなければ送信ボタンを有効にしたい場合は、次の記事を参考にしてください。
このような措置にもかかわらず、最近聞いた内容のない空のコメントが走り始めました。
これは目に見えないHTMLタグしかない場合かもしれません。たとえば、以下のリンクのみがあり、テキストがない場合は、コメントの長さが5単語以上であっても、コメントリストには内容がないコメントのように見える場合があります。
<a href="..."></a>
そのため、タグを削除して長さをカウントするようにコードを少し修正しました。
add_filter('preprocess_comment', function($comment) {
$plain_text = trim(strip_tags($comment['comment_content']));
$word_count = count(preg_split('/\s+/', $plain_text, -1, PREG_SPLIT_NO_EMPTY));
if ($word_count > 250) {
wp_die('댓글이 너무 깁니다. 댓글은 250단어까지 입력할 수 있습니다.', '댓글 길이 에러', array('back_link' => true));
}
if ($word_count < 5) {
wp_die('댓글이 너무 짧습니다. 최소 5단어 이상이 되어야 합니다.', '댓글 길이 에러', array('back_link' => true));
}
return $comment;
}, 10);
strip_tags() 関数を使用すると、タグのようなものを削除してから、実際のテキストのみに基づいてチェックします。
上記のコード チャイルドテーマの関数ファイルに追加できます。実際に上記のコードに変更した後、空のコメントはもう走りませんね。😄
JSコードで上記のPHPコードを追加すると、このブログでコメントの長さに基づいて短すぎるか長すぎるコメントをフィルタリングするのと同じように動作します。
- JSコード:フロントエンドでユーザーがコメントを書くときの長さ制限、HTMLタグ入力制限
- PHPコード:バックエンドで送信される短すぎるまたは長すぎるスパムコメントの制限
コメントを残す