程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Fatal error: Call to a member function get() on a non-object

Fatal error: Call to a member function get() on a non-object

編輯:關於PHP編程

在自己代碼的函數中使用 require(BASE_PATH . ‘wp-load.php’); 引入 WordPress 核心代碼,然後執行 WP_Query 獲取特定的日志,然後就發生下面的錯誤:

Fatal error: Call to a member function get() on a non-object in [path to site]\site\wp-includes\query.php on line 27

這是因為全局變量不正確使用引起的問題,默認 $wp_query 是在 wp-setting.php 中定義的,因為是定義在最外層,所以 $wp_query 自然就是一個全局的變量。但是這裡在自己的函數中通過 require(BASE_PATH . ‘wp-load.php’); 引入 WordPress 核心代碼,$wp_query 反而變成這個函數中的本地變量,所以其他代碼調用 $wp_query 的時候,就發生了錯誤。

解決方法是:在 require(BASE_PATH . ‘wp-load.php’); 代碼上面加入以下代碼,預先將 $wp_query 定義為全局變量:

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved