私はWordPressテーマに取り組んでおり、自分のテーマクラス内から$wpdbクラスを使用しようとしています。次のSQLクエリを使用しようとすると、$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構文の引用符のようです。クエリをに変更した場合
$wpdb->query("UPDATE $wpdb->options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';");
エラーなしで動作するようです。