wordpress

修复卸载畅言后出现随机重复评论的脚本

之前说过畅言卸载后会随机出现重复评论,需要写个脚本来修复
不过因为危害不大就算了,一直拖着没弄
今天正好有点时间,就随手写了段脚本,经过本地测试+线上执行,成功清除掉了畅言生成的重复评论
现将这段脚本开源。基本思路就是获取所有畅言添加的评论(comment_agent like 'changyan_%'),然后判断是否有跟这条评论内容相同的、同一个作者的、回复同一篇文章同一条评论的其他评论,如果有,则删除

<?php
$db = new PDO('mysql:host=localhost;dbname=mokeyjay', 'root', 'root');
$sql = 'Select * From wp_comments Where comment_agent Like \'changyan_%\'';

foreach ($db->query($sql) as $row){
    $q = $db->prepare('Select comment_ID From wp_comments Where comment_ID != :id and comment_content = :content And comment_post_ID = :post_id And comment_author = :author And comment_parent = :parent Limit 1');
    $q->execute([
        ':id' => $row['comment_ID'],
        ':post_id' => $row['comment_post_ID'],
        ':author' => $row['comment_author'],
        ':content' => $row['comment_content'],
        ':parent' => $row['comment_parent'],
    ]);

    $row1 = $q->fetch();
    if($row1){
        var_dump($db->exec('Delete From wp_comments Where comment_ID='.$row1['comment_ID']));
        echo '<br>';
    }
}

3 条评论

点击这里取消回复。

昵称
  1. 呆头空

    感觉这样写SQL好奇怪,关键字要么全大写,要么全小写,首字母大写还是第一次看到

    1. mokeyjay

      噫,我也不知道是哪里养成的破习惯……

  2. 那天的流星

    刚刚关了畅言,好像确实存在问题