WordPress禁止提交包含非法关键词的评论
我们国家对网络监管现在已越来越严格,经历过网络严打的站长可能很多都遇到过自己的网站被人恶意发布带非法关键词的评论或文章,而直接导致网站被空间商或监管部门暂时关闭,严重影响网站运营。但是如果遇到这种情况,大多数都只能自己吃哑巴亏,没处说理去。所以,我们必须得自己动手将这些带非法关键词的垃圾评论直接拦截下来。即使不能完全拦截,至少也能减少很多。本文就专门介绍WordPress如何禁止提交带非法关键词的评论。
/* 禁止提交含非法关键词的评论 代码来源: www.wpzxbj.com */ function in_comment_post_like($string, $array) { foreach($array as $ref) { if(strstr($string, $ref)) { return true; } } return false; } function drop_bad_comments() { if (!emptyempty($_POST['comment'])) { $post_comment_content = $_POST['comment']; $lower_case_comment = strtolower($_POST['comment']); $bad_comment_content = array( '你妹', '傻逼', '他妈的', '操你妈', ); 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/domain.com/example_spam.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( __('禁止评论中包含非法关键词!') ); } } } add_action('init', 'drop_bad_comments');
代码说明:以上代码需插入主题function.php。将自动拦截所有包含上述代码中添加的非法关键词评论。将非法关键词添加到$bad_comment_content下面,每行一个关键词。需修改/var/log/httpd/domain.com/example_spam.txt为你自己服务器上对应的目录,用于存储拦截记录。
这段代码不仅可以用于拦截带非法关键词的评论,还可以用于反垃圾评论。你完全可以将垃圾评论中经常出现的关键词也添加进这段代码中用于拦截,这样就起到了拦截垃圾评论的目的。这段代码的最大好处是直接拒绝提交评论,以后就不用每天辛辛苦苦地去后台垃圾评论里删除或清空了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END