我正在编写插件并尝试使用以下命令从我的数据库中的自定义表中请求一些数据:
$current_text = $wpdb->get_results("SELECT text FROM addtext ORDER BY id DESC LIMIT 1");
但只是得到错误未定义变量:wpdb
知道为什么这不起作用?我跟着博客跟踪谷歌,没有运气。对WP插件来说还是一个新手,所以可能很明显。
谢谢!
答案 0 :(得分:31)
我需要在我的函数中使用global $wpdb;
。
答案 1 :(得分:2)
要添加的一个注意事项:您无法在课程中使用global
,当然您必须使用global
才能使用$wpdb
让您的对象正常工作。
虽然您无法在课程中立即使用global
,但您必须在函数中声明$wpdb
为global
在课堂上,这确实有用。
e.g。这会给您一个错误:
class wpdb_test {
global $wpdb; // can't use global as a direct 'child' of a class
public function __construct () {
...
}
}
因为global
不能直接在类中使用。同样,简单地引用类中的$wpdb
也会给您一个错误,因为该对象不知道$wpdb
是什么。您必须在类中的函数内声明$wpdb
为global
。
e.g。这很好用:
class wpdb_test {
public $variable_name;
public function __construct () {
global $wpdb; // safe to use because it's inside a function
...
}
}
...并且因为$wpdb
已在函数里面声明global
一个类,您可以使用它。