私が過去に中小企業向けのサイトをいくつか構築したとき、私は歴史的にアンチスパム対策なしでできるようになりました。私は今、月に5〜20のスパムコメントを受け取るサイトをいくつか持っています。私はそれが設定されているので、すべてのコメントはモデレートされなければなりません、それは本当に大したことではありません。これらのコメントの内容がしばしばバイアグラ、他の薬、ロシアのポルノサイトなどに関するものであることを除いて、私はそれを十分にいいと思うでしょう、そして私はそれが私のクライアントのメールボックスやモデレーションキューなどに現れるのをひどく反映しているように感じます..
Akismetは間違いなくこのようなことの多くを手助けすることができました - しかし、私は値段を正当化することはできません。
私は過度のプラグインや肥大化を避けようとしています、そしてこれには単純な解決策があるべきだと感じます - 非常に無駄のないプラグインかどこかのコードスニペットのどちらかです。
何か案は?
アンチスパム蜂 を使用してください。それは無料で、家に電話する必要はありません、そしてあなたがコメントフォームをあまり変更しない限り(あなたはそれをテストしなければなりません)驚くほどうまくいきます。
スパムコメントのメール通知を無効にしてください。 :)
私はあなたのセットアップ、リソース、そして/または知識がよくわからない。しかし、プラグインを使用しなくても試すことができるいくつかのことがあります。
テーマのfunctions.phpファイルに次のいずれかを配置することで、ナンスを追加してみることができます。私はこれらを思い付かなかった、私がそれをどこで手に入れたか覚えていることができれば私は作者に名誉を与えるであろう。また、なんらかの理由でそれがいつもうまくいくわけではなく、私の経験から正当な解説者を防ぐことができます(たぶん他の人がコメントできる)。しかし、ここでそれは:
// Add a nonce to the comment form for spam protection.
function add_comment_form_nonce_field( ){
wp_nonce_field( 'anti_spam_nonce_field' );
}
add_action( 'comment_form', 'add_comment_form_nonce_field' );
function check_comment_form_nonce_field(){
if( !wp_verify_nonce( $_REQUEST['_wpnonce'], 'anti_spam_nonce_field') )
die('Security check failed');
}
add_action( 'pre_comment_on_post', 'check_comment_form_nonce_field');
これは別の提案です:
// Add a nonce to the comment form for spam protection.
function wp_comment_check_hidden_field() {
$user = wp_get_current_user();
if ( !isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], "comment_form_{$comment_post_ID}") ) {
do_action('comment_nonce_failed', $comment_post_ID);
wp_die( __('Sorry, automated comments are not accepted.') );
}
}
add_action('pre_comment_on_post', 'wp_comment_check_hidden_field');
function wp_comment_add_hidden_field() {
wp_nonce_field("comment_form_{$post_id}", '_wpnonce', false);
}
add_action('comment_form', 'wp_comment_add_hidden_field');
最近私はボットを止める別の方法を発見しました。あなたはPHPセッションクッキーを作成しなければならないでしょう。これはphp.iniや.htaccess変数(php_value)を通して簡単にできます。ほとんどのホストはどちらか一方を提供します。
http://php.net/manual/en/session.configuration.php
あなたのサイトがセッションクッキーを作成することを確認したら、あなたのルートの.htaccessファイルにこれまたは類似のものを入れてください。
RewriteCond %{HTTP_COOKIE} !^PHPSESSID=\w+ [OR]
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?example\.com/ [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule ^wp-(comments-post|register)\.php http://example\.com [R=301,L,NS]
Exmaple.comをあなたのドメインに置き換えます。また、あなたのWordPressの設定やバージョンによっては、wp-register.phpをインクルードする必要はないかもしれません(私は、ボットがこれらのどちらにも当たらないように、wp-login.phpとwp-register.phpの両方を含めました)。 )これは、スパムボットが通常は使用しない2つのことをブロックしますが、通常の訪問者はすべきではありません(あるいは空白のユーザーエージェントの場合はボットがします)。あなたがヨーロッパにいるならば、私は彼らのクッキーの法則に精通していないのであなたが問題なくこれを適用できるかどうかわからないので、あなたはHTTP_COOKIE条件を取り除く必要があるかもしれません。
また、あなたは特定の単語を心配しているので、あなたはWordPressの組み込みコメントブラックリストを使ってみることもできます。
http://codex.wordpress.org/Combating_Comment_Spam#Comment_Blacklist
しかし、あなたはそこに置く言葉に注意する必要があります。
私と他の多くの人、他の人のために働くプラグインコンボ:Akismet + クッキーコメント用 +(オプション) Impostercide
最良の方法は選択肢がないため、Akismetに代わるものを探しているのであれば、どれもスパムに対する効果がないと感じるかもしれません。しかし、次のいずれかを試すことができます。
Defensio - 最大5人の従業員がいて最大25,000ポスト/月のサイトでは無料。
アンチスパムビー(toschoへの小道具)
TypePad AntiSpamをお勧めしません。プラグインの は2008年以来バージョン1.02 で立ち往生していました。
注:コメント用クッキープラグインを使用している場合は、次の点に注意してください。( なぜ ?)
あなたのウェブサイトがwww.example.com
から提供されている場合、あなたの静的コンテンツは別のサブドメインから提供されます。そしてこれをあなたのwp-config.phpに追加してwww.example.com
をクッキードメインとして設定してください:
define('COOKIE_DOMAIN', 'www.example.com');
webサイトがexample.com
から配信されている場合、静的コンテンツは別のドメインまたは別のドメインのサブドメインから配信されます。あなたのウェブサイトがwww.example.com
から提供されている場合も同じことができます。
PS:私があなただったら、コメントのためのクッキーを有効にして、プラグインだけでどのように仕事ができるのか見てみたい。すべてのスパムボットをブロックします。