Ошибка "Call to a member function get_results() on a non-object" при работе с $wpdb в WordPress
4 нояб. 2014 г., 17:11:16
Просмотры: 15.3K
Голосов: 2
У меня возникает ошибка "Call to a member function get_results() on a non-object in" в следующем коде:
require_once($_SERVER['DOCUMENT_ROOT'] . $folder . '/wp-config.php');
require_once($_SERVER['DOCUMENT_ROOT'] . $folder . '/wp-load.php');
if (!$wpdb) {
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
} else {
global $wpdb;
}
function vendorDatails( $param)
{
if ((substr ($param, 0, 0)) == '#')
{
substr($param, 1);
}
$order_ids = $wpdb->get_results(
"
SELECT DISTINCT vendor_id
FROM $wpdb->lqrhxf_pv_commission
WHERE order_id = %d
",
$param
);
foreach ( $order_ids as $order_id )
{
echo $order_id->vendor_id;
}
}
Параметры базы данных загружаются успешно, но я получаю ошибку на строке, где используется переменная $wpdb:
$order_ids = $wpdb->get_results(

GabrieleU
23
Все ответы на вопрос
2
0
Это проблема с областью видимости переменных в PHP, в вашей функции не определена переменная $wpdb
.
Добавьте
global $wpdb;
перед использованием объекта $wpdb
.

Milo
78.9K
4 нояб. 2014 г. 17:24:59
1
Если вам нужно использовать функционал WordPress за пределами WordPress, вы можете использовать:
include_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
После этого вы сможете использовать функции WordPress. Проверьте это. Если вам нужен доступ только к функциям базы данных, тогда используйте:
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/wp-db.php' );
if (!$wpdb) {
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
} else {
global $wpdb;
}

Yogesh Bangar
101
27 июн. 2019 г. 14:53:17
Похожие вопросы
2
ответов