Class WordPress$wpdb->;选项返回空白
我正在处理WordPress主题,并试图在我自己的主题类中使用$wpdb类。当我尝试使用以下SQL查询时,Class WordPress$wpdb->;选项返回空白,class,function,wordpress,Class,Function,Wordpress,我正在处理WordPress主题,并试图在我自己的主题类中使用$wpdb类。当我尝试使用以下SQL查询时,$wpdb->options变量为空并生成错误 global $wpdb; $wpdb->query("UPDATE ". $wpdb->options ." SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';"); 我正在创建的类中使用此代码 这是一个高度缩小的班级样本 class Theme_C
$wpdb->options
变量为空并生成错误
global $wpdb;
$wpdb->query("UPDATE ". $wpdb->options ." SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';");
我正在创建的类中使用此代码
这是一个高度缩小的班级样本
class Theme_Class {
function init($options) {
/* Load theme's functions. */
$this->functions();
}
function plugins() {
global $wpdb;
/* Auto plugin activation */
if(get_option('morphius_int_plugins', '0') == '0') {
$wpdb->query("UPDATE ". $wpdb->options ." SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';");
$wpdb->query("UPDATE ". $wpdb->sitemeta ." SET meta_value = 'a:0:{}' WHERE meta_key = 'active_plugins';");
update_option('morphius_int_plugins', '1');
}
}
}
我没有正确地全球化$wpdb变量。任何帮助都将不胜感激
编辑
从目前为止我能弄明白的。似乎是SQL语法中的te引号导致了问题。如果我将查询更改为
$wpdb->query("UPDATE $wpdb->options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';");
它似乎可以正常工作。您可以尝试使用
$wpdb->prefix
:
global $wpdb;
$wpdb->query("UPDATE ". $wpdb->prefix ."options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';");
您还可以查看这些表,以查看选项表是否存在:
print_r($wpdb->tables);
print_r($wpdb->ms_global_tables);
print_r($wpdb->global_tables);
print_r($wpdb->old_tables);
正常情况下,使用
$wpdb->options应该可以工作,因此您应该检查其他表名是否也有问题。它会生成什么错误?您的SQL语句中的“SET”附近有错误。