《Disney +》 迪士尼、Marvel、彼思、星球大戰…  沒有PS5也能遊玩了!PC版「FINAL FANTASY VII REMAKE INTERGRADE」將於Epic Games Store發售!   《泡泡糖忍戰》第7賽季即將展開!並推出與VOCALOID的最新合作!   X JAPAN、LUNA SEA、GLAY 三大天團聯手!【音樂人官方認證】視覺系音樂節奏遊戲《EXTASY VISUAL SHOCK》正式公開!   到底哪裡不一樣?各款Nitendo Switch性能統整!   11月優惠進駐PlayStation Store   HyperX將於日本發售「SoloCast USB麥克風」!預購抽籤登記活動開始   【悲報】這次真的倒了…《櫻花革命 ~綻放的少女們~》服務即將結束   「集合啦!動物森友會」推出秋夏季節活動!一起在島上放煙花吧! 

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 購物平台