上一次我写了一个文章:http://www.sdtclass.com/2105.html 是说如何利用设置来阻止垃圾评论,但是,随着评论量的增多【垃圾评论增多】,我不得不外加采取代码模式!也就是结合上面提到的文章加下面这个代码即可!
首先,进入后台-外观-编辑-选择functions.php文件-然后我们找到合适的地方加下面代码,其实我这里,是告诉大家如何选择合适的地方,很多人都不太清楚这个函数模板如何添加函数,呵呵!
我们看到这里有很多注释,所以,我们就可以清楚这些应该加哪里咯!
首先,要知道一点,带注释的,每个function都是一个独立的代码,那么,我们只需要在这里找到很多的注释,然后下面是function的那种,这里你看到很多函数,可以随便加在两个函数之间,就是注释的上面!
代码如下:
- //垃圾评论拦截
- class anti_spam {
- function anti_spam() {
- if ( !current_user_can('level_0') ) {
- add_action('template_redirect', array($this, 'w_tb'), 1);
- add_action('init', array($this, 'gate'), 1);
- add_action('preprocess_comment', array($this, 'sink'), 1);
- }
- }
- function w_tb() {
- if ( is_singular() ) {
- ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
- "textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
- }
- }
- function gate() {
- if ( !emptyempty($_POST['w']) && emptyempty($_POST['comment']) ) {
- $_POST['comment'] = $_POST['w'];
- } else {
- $request = $_SERVER['REQUEST_URI'];
- $spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;
- $_POST['spam_confirmed'] = "$spamcom";
- }
- }
- function sink( $comment ) {
- $email = $comment['comment_author_email'];
- $g = 'http://www.gravatar.com/avatar/'. md5( strtolower( $email ) ). '?d=404';
- $headers = @get_headers( $g );
- if ( !preg_match("|200|", $headers[0]) ) {
- add_filter('pre_comment_approved', create_function('', 'return "0";'));
- }
- if ( !emptyempty($_POST['spam_confirmed']) ) {
- if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;
- die();
- add_filter('pre_comment_approved', create_function('', 'return "spam";'));
- $comment['comment_content'] = $_POST['spam_confirmed'];
- }
- return $comment;
- }
- }
- $anti_spam = new anti_spam();
加了后,点击保存,呵呵,是不是发现垃圾评论少了很多呢?另外加上我前面的文章的方法,肯定可以清洁网站咯!
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助