WordPress评论文字自动替换

Ludou
文章目录

    如果你的WordPress博客是搭建在国内的主机上,那么你得注意一下你的网站内容了,必须接受国内相关机构的监管,如果你的网站如果出现了某某非法关键字,那么你的网站可能很快就要被关停了。当然这只是一方面,WordPress的文章评论区是一个相对自由的地方,你可能很难监管到,还可能会出现一些庸俗、谩骂的内容,你可以将这些给替换掉,不必删除整条评论,这样既可以继续开启评论功能,又可以消除影响。

    之前我写的插件WordPress评论过滤插件 – 大篱,就有这样的一个功能,但这是一个多合一功能的插件,可能你只需要其中的评论关键字过滤功能,那么你可以选择以下任一方法操作:

一、评论显示时替换

    此方法不会更改评论的原始内容,只会在评论显示给访客时替换相应的关键字,你在后台看到的仍然是评论的原文。在主题目录下的functions.php中将最后一个 ?> 替换成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 * 名称:WordPress评论文字自动替换
 * 作者:露兜
 * 博客:http://www.ludou.org/
 * 最后修改:2011年2月20日
 */

function dali_conents_replace($incoming_comment) {
    $words = '这里填替换规则';
    $rules = explode('||', $words);

    foreach($rules as $rule) {
        $word = explode('->', trim($rule));

        if(isset($word[1]))
            $incoming_comment = str_replace(trim($word[0]), trim($word[1]), $incoming_comment);
    }

    return $incoming_comment;
}
add_filter( 'comment_text', 'dali_conents_replace' );
add_filter( 'comment_text_rss', 'dali_conents_replace' );
?>

    请将以上代码中第2行中这里填替换规则替换成你自己的规则,规则请按以下格式填写:

1
关键字A->替换A || 关键字B->替换B || 关键字C->替换C

    关键字A在实际显示时将被替换成替换A,依此类推,多个替换规则之间请用 || 隔开。示例:

1
$words = '傻逼->牛逼 || shit->haha';

二、评论添加时替换

    此方法将直接替换访客发布的评论内容,数据库中存储的评论就是替换后的内容,在主题目录下的functions.php中将最后一个 ?> 替换成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 * 名称:WordPress评论文字自动替换
 * 作者:露兜
 * 博客:http://www.ludou.org/
 * 最后修改:2011年2月20日
 */

function dali_conents_replace($incoming_comment) {
    $words = '这里填替换规则';
    $rules = explode('||', $words);

    foreach($rules as $rule) {
        $word = explode('->', trim($rule));

        if(isset($word[1]))
            $incoming_comment['comment_content'] = str_replace(trim($word[0]), trim($word[1]), $incoming_comment['comment_content']);
    }

    return $incoming_comment;
}

add_filter( 'preprocess_comment', 'dali_conents_replace' );
?>

    替换规则的书写方式请参考以上的方法一。

本文版权归露兜博客所有,转载引用请完整注明以下信息:
本文作者:Ludou
本文标题:WordPress评论文字自动替换
本文地址:http://www.ludou.org/wordpress-comment-text-replace.html

露兜博客博主,男生,业余Web程序员,儒家思想受益者。文采不佳,不喜欢聚光灯,不喜欢吹牛,不喜欢无序的做事方式。闲时喜欢写些代码自娱自乐,并在博客中分享一些个人技术经验。

标签:

18 条评论

我来说两句
  1. 青刀刀

    哈哈哈,这替换。。原本夸奖博主“牛b”的,博主也会一肚子郁闷~~

  2. 一灰

    唉,以后都要用组列阵服务器来储存特殊的关键词了~

  3. wushui

    怎么我感觉有点看不太懂啊

  4. Felix

    简单实用。不过还是要人工审核的。

  5. 主题啦

    同样适合在国外的用户,国外对版权更加重视,感谢分享!

  6. 谷歌网友

    非常实用的东西!

  7. 宇宙弦

    这个是越来越重要的。
    就算主机放在国外,只要用户是在国内的还是应该加强管理一下评论。
    毕竟这些不是自己意料中的内容。
    敏感词多了,触发了房伙强屏蔽也很麻烦。

  8. yesureadmin

    建议搞一个和谐词表啊,这样自己想想不出几个,这个意义就不大了啊

  9. MK

    需要评论审核就可以啦

  10. Ellic

    傻逼,555555,ludou别怪我,我是想尝试下有没有效果哈。

  11. 兲語

    楼主,请问下为什么我用了你的代码后会500错误那?我同时也用了别的在网上找的替换文章内容的一个代码,请问是不是冲突那?如果冲突需要如何整合那?
    [php]
    <?php
    function replace_text_wps($text){
       $replace = array(
            // '替换前的内容' => '替换后的内容'
            '替换前内容' => '替换后内容', 
       );
        $text = str_replace(array_keys($replace), $replace, $text);
        return $text;
    }
    add_filter('the_content', 'replace_text_wps');
    add_filter('the_content', 'replace_text_wps');
    ?>
    [/php]

    • Ludou

      add_filter(‘the_content’, ‘replace_text_wps’);
      add_filter(‘the_content’, ‘replace_text_wps’);

      删除以上任一行代码,你的代码是替换文章内容的。

      500是服务器级别的错误。

发表评论

订阅评论