我不确定您的设置、资源和/或知识。但这里有一些你可以尝试的东西,不需要使用插件。
您可以尝试添加一个nonce,方法是在主题的函数中放置以下内容之一。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会话cookie,这很容易用PHP实现。ini或通过。htaccess变量(php\\u值)。大多数主机提供一种或另一种。
http://php.net/manual/en/session.configuration.php
一旦您确认您的站点确实创建了会话cookie,请将其或类似内容放入您的根目录中。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。与您的域通信。此外,您可能不需要包括wp寄存器。php取决于您的WordPress设置/版本(我刚刚包括了wp-login.php和wp-register.php,以防止机器人尝试攻击其中任何一个)。这阻止了spambots通常不使用的两件事,但普通访问者应该使用这两件事(或者在用户代理为空的情况下,机器人可以使用这两件事)。如果你在欧洲,我不确定你是否可以毫无问题地应用它,因为我不熟悉他们的cookie法律,所以你可能必须删除HTTP\\u cookie条件。
此外,由于您关心特定的单词,您也可以尝试使用WordPress内置的评论黑名单:
http://codex.wordpress.org/Combating_Comment_Spam#Comment_Blacklist
但是你需要小心你放在那里的词。