先月スパムコメントが来たので手を打ったんだけど、今日それをすり抜けて何通かやってきたんで、もう少し厳しくしてみたよ。
スパムコメントは海外から英語でやってくるものばかりなんで、コメントにASCII文字しかない場合NGになるようにしてみた。
日本語で書いてる分にはNGにはならないので安心してね。あと、中国語やハングル文字もNGにならないと思う(多分)。
IMEが壊れて日本語が入力できないとか、海外旅行で日本語が使えるPCがないとか、そういう場合はコメントできなくなっちゃうけど堪忍してください。
今回の対策は、Yaguma’s Weblogさんのを参考にさせてもらって、ちょっぴり手を加えたよ。
WordPressのwp-comments-post.phpの40行目くらい(die(_LANG_WPCP_ERR_TYPE);の下あたり)に以下のように記述。
if ( !ereg(”[¥x80-¥xFF]“, $comment ))
die(_LANG_WPCP_ERR_NOSPAM);
1行目は、ASCII文字以外の文字がコメントに含まれていなかった場合という意味で、[¥x80-¥xFF]つうのが正規表現での「ASCII文字以外」を表しているのだな。人に聞いてやっとそこまで分かったよ。
※そうそう、WordPress上で投稿すると¥を直接記述しても消えちゃうんだよね。Yaguma’s Weblogさんとこでもコードから¥が消えちゃっていたので、最初うまくいかなかったよ。
それから、lang_ja.phpのどこでもいいから以下のように追加。
私は一番最後に追加しといた。
define(’_LANG_WPCP_ERR_NOSPAM’,'Error: ASCII文字のみの投稿はできません’);
私のとこはUTF-8だけど、EUCでもうまくいくはず。

