我有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 ) {
$wpdb->query("DELETE FROM ".$wpdb->prefix."_comments WHERE comment_ID == ".$comment->comment_ID);
}
else
$prev = $comment;
}
?>
我收到了这个错误:
* GT;致命错误:在第5行的... / commentsremoving.php中的非对象上调用成员函数get_results()*
更新
感谢Sheikh Heera我现在没有错误消息,但我的代码不起作用 - 没有重复的评论被删除。有什么想法吗?
答案 0 :(得分:2)
每当您想在WordPress
之外使用WordPress的功能时,您都可以使用
include_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php' );
然后您可以使用WordPress的功能。 Check This.如果您只想访问数据库函数,那么
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/wp-db.php' );
if (!$wpdb) {
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
} else {
global $wpdb;
}
答案 1 :(得分:0)
在第5行后面的代码中粘贴以下内容。脚本现在是否在页面中显示任何错误?
$wpdb->print_error();
答案 2 :(得分:0)
我的猜测是你不需要这个文件顶部的wp-load.php。要加载WordPress以便可以使用其全局变量和函数,需要此文件。尝试将其放在全局变量之前的文件顶部:
require( '/path/to/wp-load.php' );