comment_post_ID 0(无法从信息中心删除)


9

碰到一些我以前从未见过的怪事。客户拥有一个活跃的博客,并使用Akismet(付费)来防范垃圾邮件。他们每天至少报告一次垃圾邮件评论,该评论被正确标记为垃圾邮件,但是无法通过单击Empty Spam或手动选择该条目并尝试将其删除而从管理控制台中删除。

我调查了一下,发现该数据库条目具有comment_post_ID0,我必须假定它未附加到任何帖子上。我显然可以从数据库中删除它们的手册(并且可以正常工作),但是还没有找到任何有关这可能的信息。

我已经替换了核心WP文件(认为这可能是一个安全问题),并且还重新生成了wp-config.php文件中的salts / keys 而不作任何更改。

任何想法都会有很大帮助。谢谢!

更新资料

尽管这可能是由我引起的,但我不确定这是否是InMotion hack的结果。

这是完成的操作:

  • 更改了FTP,MySQL密码
  • 创建新的数据库用户,分配给数据库
  • 更新了盐/键 wp-config.php
  • 更改了所有WP用户密码
  • 重新安装核心WordPress文件

Akismet缺乏关于这一想法的想法(不要怪他们),因为这一想法是持久的。


2
如果发布的评论没有发布ID,则ID设置为“ 0”。看看/wp-comments-post.php。除非您有ID为'0'的帖子,否则接下来的几行应该杀死该脚本。这令人费解,这就是为什么这是评论而不是尝试答案的原因。
s_ha_dum 2012年

是的-这肯定
Zach 2012年

1
另一个想法。从数据库中获取垃圾邮件发送者IP,然后在服务器日志中搜索它。垃圾邮件发送者要求哪个网址?
拉尔夫912 2012年

1
在comment_save_pre上执行grep,看看是否有一个函数可以在保存之前更改数据。没有帖子号(不接受评论),无法添加评论,因此在接收后将其更改。一些问题:是否有自定义帖子类型,您是否使用ajax提交评论(插件)。您在使用验证码插件吗?
Patriek 2012年

1
大家好-感谢您持续关注这一主题。几个回应:没有插件可以与comment_id_not_found或挂钩comment_save_pre(以前没有名为Easy Comment Uploads的插件,但尚未发布,也找不到原始文件-现在使用Comment Images)。访问日志尚未显示这些IP地址的任何匹配项(也没有匹配项),但是搜索确认它们是垃圾邮件(如果还不明显的话)。
Zach 2012年

Answers:


1

很抱歉在这里无法发表评论,但我会尽力提供帮助。

wp_handle_comment_submission函数处理评论发布,其中包含对post_id的准确检查:

    $post = get_post( $comment_post_ID );

    if ( empty( $post->comment_status ) ) {
         ...
       return error_happened; 
    }

即(1)通过,或(2)除了默认的发布评论方式之外,还添加了评论。

对于(1)-检查id == 0的帖子在db wp_posts表中是否不存在。有时数据库故障导致此类记录的存在

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.