wordpress使用代码来过滤和阻止垃圾评论[Wordpress教程]

wordpress使用代码来过滤和阻止垃圾评论[Wordpress教程]
wordpress使用代码来过滤和阻止垃圾评论[Wordpress教程]-度崩网-几度崩溃
将下面代码写入主题文件夹下的functions.php文件即可

方法一:过滤内容为全英文和含有日文的垃圾评论

  1. /* 阻止垃圾评论 */
  2. function refused_spam_comments( $comment_data ) {
  3. $pattern = '/[一-龥]/u';
  4. if(!preg_match($pattern,$comment_data['comment_content'])) {
  5. wp_die('评编辑论必须含中文!');
  6. }
  7. return( $comment_data );
  8. }
  9. add_filter('preprocess_comment','refused_spam_comments');

方法二:反垃圾评论代码

  1. /* 垃圾评论拦截 */
  2. class anti_spam {
  3. function anti_spam() {
  4. if ( !current_user_can('level_0') ) {
  5. add_action('template_redirect', array($this, 'w_tb'), 1);
  6. add_action('init', array($this, 'gate'), 1);
  7. add_action('preprocess_comment', array($this, 'sink'), 1);
  8. }
  9. }
  10. function w_tb() {
  11. if ( is_singular() ) {
  12. ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=(["'])comment(["'])(.+)/textarea>#",
  13. "textarea$1name=$2w$3$4/textarea>",$input);') );
  14. }
  15. }
  16. function gate() {
  17. if ( !emptyempty($_POST['w']) && emptyempty($_POST['comment']) ) {
  18. $_POST['comment'] = $_POST['w'];
  19. } else {
  20. $request = $_SERVER['REQUEST_URI'];
  21. $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒';
  22. $IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过代理)' : $_SERVER["REMOTE_ADDR"];
  23. $way = isset($_POST['w']) ? '手动操作' : '未经评论表格';
  24. $spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;
  25. $_POST['spam_confirmed'] = "请求: ". $request. "n来路: ". $referer. "nIP: ". $IP. "n方式: ". $way. "n內容: ". $spamcom. "n -- 记录成功 --";
  26. }
  27. }
  28. function sink( $comment ) {
  29. if ( !emptyempty($_POST['spam_confirmed']) ) {
  30. if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return$comment;
  31. //方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.
  32. die();
  33. //方法二: 标记为 spam, 留在资料库检查是否误判.
  34. //add_filter('pre_comment_approved', create_function('', 'return "spam";'));
  35. //$comment['comment_content'] = "[ 判断这是 Spam! ]n". $_POST['spam_confirmed'];
  36. }
  37. return$comment;
  38. }
  39. }
  40. $anti_spam = new anti_spam();
代码后面提供了两种对付垃圾评论的办法,一种是直接阻止评论,另一种是将垃圾评论放在Wordpress评论的待审核队列中,默认的是第一种,如果你想使用第二种,请给die();加上//,然后去掉“方法二”下面代码的//符号。

方法三:过滤内容包含任意日文字符的垃圾评论

  1. /* 阻止日文垃圾评论 */
  2. function BYMT_comment_jp_post( $incoming_comment ) {
  3. $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
  4. if(preg_match($jpattern, $incoming_comment['comment_content'])){
  5. wp_die( "禁止有日文字符的评论 You should type some Chinese word" );
  6. }
  7. return( $incoming_comment );
  8. }
  9. add_filter('preprocess_comment', 'BYMT_comment_jp_post');
WordPress教程

关于本站ripro主题4.8版本后门分析[建站教程]

2019-12-17 17:58:20

WordPress教程

柒比贰seven主题7b2主题日主题ripro美化,浏览器页面滚动条美化[网站美化]

2019-12-19 11:38:10

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索