欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

Wordpress PHP Fatal error: Call to a member function get()

程序员文章站 2022-06-03 07:49:25
...

Wordpress PHP Fatal error: Call to a member function get() on a non-object解决方法 在自己代码的方法仲使用 require(ABSPATH.'wp-load.php'); 引入Wordpress核心代码,然后执行WP_Query获取特定的post,就会发生下面的错误: PHP Fatal error: Call to

Wordpress PHP Fatal error: Call to a member function get() on a non-object解决方法


在自己代码的方法仲使用 require(ABSPATH.'wp-load.php'); 引入Wordpress核心代码,然后执行WP_Query获取特定的post,就会发生下面的错误:

PHP Fatal error:  Call to a member function get() on a non-object in /sitepath/wp-includes/query.php on line 28

这是因为全局变量不正确使用引起的问题,默认 $wp_query 是在 wp-setting.php 中定义的,因为定义在最外层,所以 $wp_query自然是一个全局变量。

但在自己的方法中通过 require(ABSPATH.'wp-load.php'); 引入Wordpress核心代码,反而使$wp_query变成了这个方法的本地变量。所以其他代码调用 $wp_query 时就会出错。


解决方法:

在require(ABSPATH.'wp-load.php'); 前面加入以下代码,预先将 $wp_query 定义为全局变量

define('WP_USE_THEMES', false);
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;