针对WordPress站点的垃圾评论依旧如潮水般,昨天在给自留地更换新版本主题后,忘记开启主题内置的垃圾评论拦截功能,没想到就半个小时,就有几十条垃圾评论!所以,今天的主要话题还是如何防范垃圾评论。
将下面的代码添加到主题的functions.php文件,自己根据需要,修改 $ bad_comment_content 数组的内容,任何包含在$ bad_comment_content 数组内的字符,将会被自动拒绝留言。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
function in_comment_post_like($string, $array) { foreach($array as $ref) { if(strstr($string, $ref)) { return true; } } return false; } function drop_bad_comments() { if (!empty($_POST['comment'])) { $post_comment_content = $_POST['comment']; $lower_case_comment = strtolower($_POST['comment']); $bad_comment_content = array( 'viagra', 'hydrocodone', 'hair loss', 'xanax', 'tramadol', 'russian girls', 'russian brides', 'lorazepam', 'adderall', 'dexadrine', 'no prescription', 'oxycontin', 'without a prescription', 'sex pics', 'family incest', 'online casinos', 'online dating', 'cialis', 'best forex', 'amoxicillin' ); if (in_comment_post_like($lower_case_comment, $bad_comment_content)) { $comment_box_text = wordwrap(trim($post_comment_content), 80, "\n ", true); $txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a'); fwrite($txtdrop, " --------------\n [COMMENT] = " . $post_comment_content . "\n --------------\n"); fwrite($txtdrop, " [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "\n"); fwrite($txtdrop, " [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "\n"); fwrite($txtdrop, " [REFERER ] = " . $_SERVER['HTTP_REFERER'] . "\n"); fwrite($txtdrop, " [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "\n"); fwrite($txtdrop, '--------------**********------------------'."\n"); header("HTTP/1.1 406 Not Acceptable"); header("Status: 406 Not Acceptable"); header("Connection: Close"); wp_die( __('bang bang.') ); } } } add_action('init', 'drop_bad_comments'); |
function in_comment_post_like($string, $array) {
foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
return false;
}
function drop_bad_comments() {
if (!empty($_POST[‘comment’])) {
$post_comment_content = $_POST[‘comment’];
$lower_case_comment = strtolower($_POST[‘comment’]);
$bad_comment_content = array(
‘viagra’,
‘hydrocodone’,
‘hair loss’,
‘xanax’,
‘tramadol’,
‘russian girls’,
‘russian brides’,
‘lorazepam’,
‘adderall’,
‘dexadrine’,
‘no prescription’,
‘oxycontin’,
‘without a prescription’,
‘sex pics’,
‘family incest’,
‘online casinos’,
‘online dating’,
‘cialis’,
‘best forex’,
‘amoxicillin’
);
if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
$comment_box_text = wordwrap(trim($post_comment_content), 80, "\n ", true);
$txtdrop = fopen(‘/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt’, ‘a’);
fwrite($txtdrop, " ————–\n [COMMENT] = " . $post_comment_content . "\n ————–\n");
fwrite($txtdrop, " [SOURCE_IP] = " . $_SERVER[‘REMOTE_ADDR’] . " @ " . date("F j, Y, g:i a") . "\n");
fwrite($txtdrop, " [USERAGENT] = " . $_SERVER[‘HTTP_USER_AGENT’] . "\n");
fwrite($txtdrop, " [REFERER ] = " . $_SERVER[‘HTTP_REFERER’] . "\n");
fwrite($txtdrop, " [FILE_NAME] = " . $_SERVER[‘SCRIPT_NAME’] . " – [REQ_URI] = " . $_SERVER[‘REQUEST_URI’] . "\n");
fwrite($txtdrop, ‘————–**********——————‘."\n");
header("HTTP/1.1 406 Not Acceptable");
header("Status: 406 Not Acceptable");
header("Connection: Close");
wp_die( __(‘bang bang.’) );
}
}
}
add_action(‘init’, ‘drop_bad_comments’);
原文:http://www.wprecipes.com/automatically-refuse-spam-comments-on-your-wordpress-blog
RSS