Вставка данных из настраиваемой PHP-страницы в таблицу wp_postmeta

Я работаю с сайтом WordPress и создал пользовательскую страницу в /home/planmyme/public_html/php/ с именем response.php . На этой странице я получаю значение для вставки в таблицу wp_postmeta (примеры значений: идентификатор транзакции, идентификатор покупки, идентификатор заказа или название элемента), но я не могу его вставить.

Я использую код ниже в качестве теста. Я не понимаю, как это сделать, или если для запуска запроса требуется соединение с базой данных.

 $metakey = "_menu_item_type"; $metavalue = "WordPress' database interface is like Sunday Morning: Easy."; $wpdb->query( $wpdb->prepare( " INSERT INTO $wpdb->wp_postmeta ( post_id, meta_key, meta_value ) VALUES ( %d, %s, %s ) ", 10, $metakey, $metavalue ) ); 

Получение этой ошибки

Неустранимая ошибка: вызов функции-функции члена () для не-объекта в /home/planmyme/public_html/php/response.php в строке 56

Если у кого-нибудь есть идея, как это сделать, сообщите мне.

Solutions Collecting From Web of "Вставка данных из настраиваемой PHP-страницы в таблицу wp_postmeta"

В сообщении об ошибке в основном говорится, что $wpdb не является объектом, поэтому вы не можете вызывать на нем какие-либо методы. Поскольку мы не можем видеть, где $wpdb определен в источнике, который вы отправили, сложно сообщить какие-либо подробности.

Вы даже включаете WordPress во внешний файл? Для использования функций и классов wordpress во внешнем приложении вам потребуется wp-load.php .

На данный момент ваш PHP-файл не распознает объект $ wpdb.

Чтобы использовать функции WordPress внутри вашего PHP-файла, вы должны сначала добавить поддержку WordPress, добавив ниже вверху вашего файла:

 <?php require('/the/path/to/your/wp-blog-header.php'); ?> 

Затем вы можете использовать $ wpdb – после его определения:

 <?php global $wpdb; ?> 

Наконец, вы должны использовать либо префикс таблицы, либо позволить $ wpdb сделать это за вас. Позже предпочтительнее, поэтому изменение префикса таблицы не повлияет на ваш файл PHP. Следовательно, ваш SQL должен быть изменен на:

 INSERT INTO $wpdb->postmeta 

.. вместо $wpdb->wp_postmeta