【发布时间】:2013-06-17 18:44:14
【问题描述】:
我有 wordpress 博客,并且在一些帖子下有大量的 cmets。我最近发现有些 cmets 重复了两三次。我想使用 php 代码从 Wordpress 的 mysql 数据库中删除表 wp_cmets 中的重复元素(通过在服务器上打开 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 ) {
$wpdb->query("DELETE FROM ".$wpdb->prefix."_comments WHERE comment_ID == ".$comment->comment_ID);
}
else
$prev = $comment;
}
?>
我得到了这个错误:
*> 致命错误:在第 5 行的 .../cmetsremoving.php 中调用非对象的成员函数 get_results()*
更新:
感谢 Sheikh Heera,我现在没有错误消息,但我的代码不起作用 - 没有删除重复的 cmets。任何想法为什么?
【问题讨论】:
-
您似乎没有在任何地方定义
$wpdb...global关键字在您提供的代码中没有任何意义。 -
var_dump $wpdb 变量请
-
全局 $wpdb 变量是正确的,所以我猜你不需要 WordPress 的 wp-load.php 在这个文件的顶部,这是访问所有 WordPress 功能所必需的。
标签: php