GlareVPN使用日本在地伺服器‧日本本地IP位址,述不能訪問日本國內網站的情形將通通消失。  Nintendo Switch 大更新!終於兼容藍牙耳機了!   Supergiant 年度最佳遊戲獲獎作品《Hades》的起源   造訪新開幕電競設施eStadium福岡!   BANDAI NAMCO公布全新力作「緋紅結繫」發售日!   8月28至30日《決勝時刻:先鋒》Alpha測試登陸PlayStation   《艾爾登法環》為魂系攻略帶來重大改變   沒有PS5也能遊玩了!PC版「FINAL FANTASY VII REMAKE INTERGRADE」將於Epic Games Store發售!   Astro’s Playroom:PlayStation 俏皮客串角色的幕後花絮 

WordPress 博客代码实现Akismet小墙效果

科技

WordPress 博主使用的防spam插件应该一般都是Akismet插件,该插件是WP默认附带的,官方推荐,说明效果应该很好,博客吧目前使用的也是Akismet插件。喜欢代码流的WordPress博主对插件通常能不用则不用,很久前博客吧发现一篇关于代码替代Akismet插件防spam的,现在转载过来分享下。

代码介绍:

据说该代码是一位willin写的,博客吧前面也转载有该作者的两篇文章,非代码实现AJAX评论效果和非插件实现评论邮件通知功能。

该代码适用的版本不详,不过应该没有版本限制。

代码使用方法:

  1. 登陆博客后台,点击“外观”选项卡下的“编辑”选项进入主题编辑界面
  2. 选择functions.php文件进行编辑,在<?php和?>之间添加以下代码
    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
    
    /* -----------------------------------------------
    <<小牆>> Anti-Spam v1.8 by Willin Kan.
    */
    //建立
    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() {
    ( !empty($_POST['w']) && empty($_POST['comment']) ) ?
    $_POST['comment'] = $_POST['w'] : $_POST['spam_confirmed'] = 1;
    }
    //處理
    function sink( $comment ) {
    if ( !empty($_POST['spam_confirmed']) ) {
    //方法一:直接擋掉, 將 die(); 前面兩斜線刪除即可.
    //die();
    //方法二:標記為spam, 留在資料庫檢查是否誤判.
    add_filter('pre_comment_approved', create_function('','return "spam";'));
    $is_ping = in_array( $comment['comment_type'], array('pingback', 'trackback') );
    $comment['comment_content'] = ( $is_ping ) ?
    "◎ 這是 Pingback/Trackback, 小牆懷疑這可能是 Spam!\n" . $comment['comment_content'] :
    "[ 小牆判斷這是Spam! ]\n" . $comment['comment_content'];
    }
    return $comment;
    } }
    $anti_spam = new anti_spam();
    // -- END ----------------------------------------
  3. 保存更新文件即可。

提示:willin的该篇文章的地址博客吧不知道,所以就添加转来的博客的地址,知道的可以留言通知一下。代码来自:

http://blog.haitianhome.com/akismet-xiaoqiang.html

提醒:该代码(方法)博客吧并没有实践,所以不清楚其效果如何。代码流的朋友可以研究一翻。

分享家:Addthis中文版

 » 转载请注明出处: 博客吧

 » 本文地址:http://www.boke8.net/wordpress-code-prevent-spam.html

Go to Source

隨機科技新聞

Gearbest 購物平台