WordPress评论文字自动替换

林继 WordPress 2,328 共写了446个字 (2011-05-07 19:03:48) 没有评论 打印 扫描二维码 百度已收录

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

  1. function dali_conents_replace($incoming_comment) {
  2.     $words = '这里填替换规则';
  3.     $rules = explode('||', $words);
  4.  
  5.     foreach($rules as $rule) {
  6.         $word = explode('->', trim($rule));
  7.  
  8.         if(isset($word[1]))
  9.             $incoming_comment = str_replace(trim($word[0]), trim($word[1]), $incoming_comment);
  10.     }
  11.  
  12.     return $incoming_comment;
  13. }
  14. add_filter( 'comment_text', 'dali_conents_replace' );
  15. add_filter( 'comment_text_rss', 'dali_conents_replace' );
  16. ?>

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

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

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

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

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

  1. function dali_conents_replace($incoming_comment) {
  2.     $words = '这里填替换规则';
  3.     $rules = explode('||', $words);
  4.  
  5.     foreach($rules as $rule) {
  6.         $word = explode('->', trim($rule));
  7.  
  8.         if(isset($word[1]))
  9.             $incoming_comment['comment_content'] = str_replace(trim($word[0]), trim($word[1]), $incoming_comment['comment_content']);
  10.     }
  11.  
  12.     return $incoming_comment;
  13. }
  14.  
  15. add_filter( 'preprocess_comment', 'dali_conents_replace' );
  16. ?>

替换规则的书写方式请参考以上的方法一。
本文来自:http://www.ludou.org/wordpress-comment-text-replace.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >