Akimet插件正在删除垃圾邮件,而不考虑首选项

时间:2011-12-13 作者:Sparky

奇怪的是,Akismet在一段时间后(我猜在一周内)正在删除旧的垃圾邮件评论。

这个盒子是NOT 已选中:

自动删除超过一个月前提交的垃圾邮件。

一周多前,我向Akismet支持部门发送了一条消息,但尚未收到回复。

我不希望Akismet删除任何内容。我不经常检查以验证误报,所以我希望所有评论都能无限期保存,甚至是垃圾邮件。

有人知道为什么即使设置为不删除垃圾评论,它也会删除垃圾评论吗?有人知道变通方法吗?

2 个回复
最合适的回答,由SO网友:Sparky 整理而成

首先,没有不删除垃圾邮件评论的设置。我的困惑是由Akismet配置页面上含糊不清的措辞引起的。。。

自动删除超过一个月前提交的垃圾邮件。

“超过一个月”是指超过一个月的“帖子”,而不是超过一个月的“帖子上提交的垃圾邮件”。

至于最初关于如何阻止删除评论的问题。。。

15天后自动删除,no matter what. Akismet thinks they know best! 他们认为你想在两周后删除垃圾邮件,因为他们还认为15天的时间足以让你验证评论是否被正确标记。

我问他们为什么不能简单地给用户一个选项,我得到了一些借口,说明数千条垃圾评论可以关闭服务器。好吧,那是真的。但如果当初没有安装Akismet插件,同样的事情也可能发生。给管理员一点信任,因为他能够就安装做出自己的决定。但这不会发生。

我意识到编辑核心文件是不受欢迎的,但我决定在自己的网站上处理它。

中的这一行wp-content/plugins/akismet/akismet.php 文件

$comment_ids = $wpdb->get_col("SELECT comment_id FROM $wpdb->comments WHERE
DATE_SUB(\'$now_gmt\', INTERVAL 15 DAY) > comment_date_gmt AND
comment_approved = \'spam\'");
我编辑过INTERVAL 15 DAY 到180天,让我有足够的时间在删除之前查看评论。

EDIT:

每次更新插件时,都必须重新应用这样的修改。

<小时>

EDIT 2:

根据@ChipBennett的有益建议,我创建了一个插件,该插件除了通过Akismet插件停用注释删除外,什么都不做。这件简单的事情避免了必须修改Akismet插件的整个问题。

我只是创建了以下内容php 文件并将其放入plugins目录(wp-content/plugins/)

<?php
/**
 * @package Akismet_keep_comment
 * @version 1.0
 */
/*
Plugin Name: Akismet Keep Comment
Plugin URI: 
Description: This plugin removes the comment deletion ability of the Akismet plugin
Author: Me
Version: 1.0
Author URI: http://www.mysite.com
*/

remove_action(\'akismet_scheduled_delete\', \'akismet_delete_old\');

?>
然后我通过仪表板的插件页面“激活”了它。

SO网友:Chip Bennett

我通常不建议修改您不控制的插件的文件。最好编写自己的站点/自定义插件来控制此挂钩:

add_action(\'akismet_scheduled_delete\', \'akismet_delete_old\');
首先,要完全停止删除,只需调用:

remove_action(\'akismet_scheduled_delete\', \'akismet_delete_old\');
然后,您可以设置cron作业(或类似作业),以激发akismet_delete_old() 使用您喜欢的任何频率。

编辑更清楚:我指的是一个站点/自定义插件,它与Akismet交互,而不是Akismet的分支/替换。由于Akismet将注释删除功能作为回调添加到插件特定的操作挂钩,因此您可以覆盖插件外部添加的操作。

这个remove_action() 上面的调用将完全停止注释删除代码的运行。如果要启用不太频繁的注释删除,可以使用以下几种方法:

重写akismet_delete_old() 回调(正如您在自己的答案中所做的),然后将其挂接到akismet_scheduled_deleteNote: 有一个伴随回调,akismet_delete_old_meta(), 您可能需要从akismet_scheduled_delete 还有行动。

结束

相关推荐

Ajax submit comments

我想通过ajax提交评论。单击comment submit按钮,通过jquery的ajax方法和结果发布评论(“等待审核…”)显示在页面上。我进入了剧本。js文件,并为按钮添加了一个单击处理程序。它验证并执行ajax提交,但这不起作用。单击提交评论仍会重定向到wp评论帖子。php页面。让它发挥作用的秘诀是什么?以下是我在脚本中的内容。js公司:$(\"#my_comment_form\").validate({ submitHandler: function(data){