奇怪的是,Akismet在一段时间后(我猜在一周内)正在删除旧的垃圾邮件评论。
这个盒子是NOT 已选中:
自动删除超过一个月前提交的垃圾邮件。
一周多前,我向Akismet支持部门发送了一条消息,但尚未收到回复。
我不希望Akismet删除任何内容。我不经常检查以验证误报,所以我希望所有评论都能无限期保存,甚至是垃圾邮件。
有人知道为什么即使设置为不删除垃圾评论,它也会删除垃圾评论吗?有人知道变通方法吗?
奇怪的是,Akismet在一段时间后(我猜在一周内)正在删除旧的垃圾邮件评论。
这个盒子是NOT 已选中:
自动删除超过一个月前提交的垃圾邮件。
一周多前,我向Akismet支持部门发送了一条消息,但尚未收到回复。
我不希望Akismet删除任何内容。我不经常检查以验证误报,所以我希望所有评论都能无限期保存,甚至是垃圾邮件。
有人知道为什么即使设置为不删除垃圾评论,它也会删除垃圾评论吗?有人知道变通方法吗?
首先,没有不删除垃圾邮件评论的设置。我的困惑是由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\');
?>
然后我通过仪表板的插件页面“激活”了它。我通常不建议修改您不控制的插件的文件。最好编写自己的站点/自定义插件来控制此挂钩:
add_action(\'akismet_scheduled_delete\', \'akismet_delete_old\');
首先,要完全停止删除,只需调用:remove_action(\'akismet_scheduled_delete\', \'akismet_delete_old\');
然后,您可以设置cron作业(或类似作业),以激发akismet_delete_old()
使用您喜欢的任何频率。这个remove_action()
上面的调用将完全停止注释删除代码的运行。如果要启用不太频繁的注释删除,可以使用以下几种方法:
重写akismet_delete_old()
回调(正如您在自己的答案中所做的),然后将其挂接到akismet_scheduled_delete
Note: 有一个伴随回调,akismet_delete_old_meta()
, 您可能需要从akismet_scheduled_delete
还有行动。
我想通过ajax提交评论。单击comment submit按钮,通过jquery的ajax方法和结果发布评论(“等待审核…”)显示在页面上。我进入了剧本。js文件,并为按钮添加了一个单击处理程序。它验证并执行ajax提交,但这不起作用。单击提交评论仍会重定向到wp评论帖子。php页面。让它发挥作用的秘诀是什么?以下是我在脚本中的内容。js公司:$(\"#my_comment_form\").validate({ submitHandler: function(data){