我有一个问题,无法调用WordPress functions.php文件中$wpdb对象上的get_results()函数。
Exact error:Call to a member function get_results()on a non-object in [...]
这是我的职责
global $wpdb;
function query_students($year){
$wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}usermeta WHERE meta_key ='foobar' AND meta_value = '{$year}'"
)
);
$wpdb->flush();
}
字符串
正如你所看到的,我已经全局化了$wpdb变量,这个函数在页面模板文件中工作得很好。我只是希望我的函数不要分散在某个地方,而是在某种集中的文件中。
谢谢期待!:)
2条答案
按热度按时间zujrkrfu1#
“全局化”一个已经在全局作用域中的变量没有任何作用。
字符串
global关键字不会永久地使定义的变量在作用域中成为全局变量。可以将其视为在函数中定义变量并将其值设置为函数外部具有相同名称的变量的一种方式。
您需要将全局声明移动到函数中,以使Global范围内的$wpdb对象在函数的范围内可用:
型
xytpbqjk2#
我在functions.php中运行以下查询
字符串
这是不工作,但在添加行全局$wpdb在函数的开始帮助我和查询运行良好。谢谢