阻止WordPress发送审核电子邮件

时间:2012-07-12 作者:mario

此问题最初发布在stackoverflow:https://stackoverflow.com/questions/11435952/stop-wordpress-from-sending-out-moderation-emails 但是在得到了@MaxGherkins的提示后,我在这里发布了一个修改后的版本以寻求帮助。

我的wordpress安装遇到了问题,每次有评论需要审核时,我都会向网站管理员发送电子邮件
这也适用于垃圾邮件评论,这会导致网站管理员在其收件箱中收到大量垃圾邮件。

每次我在谷歌上搜索这个问题,我最终得到的答案是“只需进入设置->讨论,然后取消单击‘保留评论以供审核’”,但不幸的是,这对我没有帮助。

因此,以下是我的设置(其中一些可能不相关):

我正在使用wordpress的内置评论系统。没有论文或facebook评论

  • 网站上的“设置”->“讨论”->“随时给我发电子邮件”下不勾选“任何人发表评论”和“评论是为了审核”

    所有博客都在同一个数据库中,前缀为wp\\u X_

    以下是一些随机博客的一些输出:

    mysql> SELECT * FROM wp_1_options WHERE option_name LIKE "%notify";
    +-----------+---------+-------------------+--------------+----------+
    | option_id | blog_id | option_name       | option_value | autoload |
    +-----------+---------+-------------------+--------------+----------+
    |        10 |       0 | comments_notify   |              | yes      | 
    |        32 |       0 | moderation_notify |              | yes      | 
    +-----------+---------+-------------------+--------------+----------+
    2 rows in set (0.01 sec)
    
    mysql> SELECT * FROM wp_50_options WHERE option_name LIKE "%notify";
    +-----------+---------+-------------------+--------------+----------+
    | option_id | blog_id | option_name       | option_value | autoload |
    +-----------+---------+-------------------+--------------+----------+
    |        11 |       0 | comments_notify   |              | yes      | 
    |        31 |       0 | moderation_notify |              | yes      | 
    +-----------+---------+-------------------+--------------+----------+
    2 rows in set (0.00 sec)
    
    mysql> SELECT * FROM wp_100_options WHERE option_name LIKE "%notify";
    +-----------+---------+-------------------+--------------+----------+
    | option_id | blog_id | option_name       | option_value | autoload |
    +-----------+---------+-------------------+--------------+----------+
    |        10 |       0 | comments_notify   |              | yes      | 
    |        30 |       0 | moderation_notify |              | yes      | 
    +-----------+---------+-------------------+--------------+----------+
    2 rows in set (0.00 sec)
    
  • 审核电子邮件如下所示:

    主题:[网站名]请调节:“测试垃圾邮件评论”

    身体:

    A new comment on the post 78 "Test spam comments" is waiting for your approval
    
    http://url/test-spam-comments/
    
    Author : djqw21208ryfg23 (IP: XXX.XXX.XXX.XXX , XXX.XXX.XXX.XXX)  
    E-mail :     [email protected]  
    URL    : http://feg239r239f9fg7329rfg322379fg23f3  
    Whois  : http://ws.arin.net/cgi-bin/whois.pl?queryinput=XXX.XXX.XXX.XXX
    
    
    Comment:  
    ugly spam comment goes here...
    
    
    Approve it: http://url/wp-admin/comment.php?action=mac&c=XXXXX  
    Delete it: http://url/wp-admin/comment.php?action=cdc&c=XXXXX  
    Spam it: http://url/wp-admin/comment.php?action=cdc&dt=spam&c=XXXXX  
    Currently 0 comments are waiting for approval.   
    
    Please visit the moderation panel:
    http://url/wp-admin/moderation.php
    
    为什么即使我关闭了“设置”->“讨论”下的电子邮件设置,而且它在数据库中看起来很好,我还是要继续收到这些电子邮件?

    我一直在使用属于wp\\u 1\\u*表的博客进行测试。

    1 个回复
    SO网友:Milo

    我无法解释为什么会发生这种情况,但我可以给你一个快速修复方法,让它安静下来。

    负责的职能是wp_notify_moderator, 这是一个pluggable function. 您可以将函数的内容复制到自己的插件中,并将其修改为return true 如果是评论审核电子邮件。

    行后:

    $comment = get_comment($comment_id);
    
    添加:

    if( empty( $comment->comment_type ) ) return true;
    
    这可能不是一个长期的解决方案,但它会让收件箱得到休息,直到它被排序为止。

    结束

    相关推荐

    特定用户的wp_count_post、wp_count_Terms和wp_count_Comments?

    有没有办法实现这些功能wp_count_posts, wp_count_terms 和wp_count_comments 仅为特定用户返回结果,可能使用用户的ID?我正在为自定义帖子类型制作一个自定义的“即时”仪表板小部件,我需要它只显示当前用户的数据,而不是整个站点的数据。提前谢谢。EDIT: 为了回应@kaiser在下面的评论,我做了以下操作,但什么都没有发生-结果与过滤器关闭时的结果相同(不应该是这样-检查此用户是否有不同数量的已发布employee 职位类型)。我的函数中的代码似乎根本没有被调用,