我有wordpress博客,我在一些帖子下有大量评论。我最近发现有些评论重复了两三次。我想使用php代码从Wordpress的mysql数据库中删除表wp_comments中的重复元素(通过从服务器打开php文件)。我使用了这段代码,但它不起作用。有什么想法吗?当我运行这个文件时,我有空白页面(没有错误,但仍有重复的评论)。
代码:
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php' );
global $wpdb;
$comments = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."_comments"
." ORDER BY comment_post_ID, comment_content");
$prev = NULL;
foreach($comments as $comment) {
if ($prev && $prev->comment_content == $comment->comment_content
&& $prev->comment_post_ID == $comment->comment_post_ID ) {
echo 'It works';
$wpdb->query("DELETE FROM ".$wpdb->prefix."_comments WHERE comment_ID == ".$comment->comment_ID);
}
else
$prev = $comment;
}
$wpdb->print_error();
?>
也许您对此代码有更好的了解?
答案 0 :(得分:0)
我只是花时间格式化代码,所以我可以阅读它。 {
之后没有else
。我相信如果你将它包含在if语句的第一部分中则需要它。在任何情况下,在一个应用程序中省略它们但在相同的代码块中使用它们不会少,这是一种可怕的做法。使您的代码难以阅读/维护。
此外,如果错误被抑制,您可能不会看到错误。
也许我需要了解我的PHP,但if ($prev)
是否真的如此?这不是一个布尔值吗?获取查询时不是一段时间。也许是。
答案 1 :(得分:0)
在打开php标记
之后,将以下内容放在脚本之上error_reporting(E_ALL);
ini_set( 'display_errors','1');
运行它并告诉我们你看到的一切。