Почему мой пользовательский маршрут WordPress не возвращает данные из базы данных?

Код ниже является моей пользовательской конечной точкой, где я пытаюсь извлечь данные из моего saic3_LibraryIndex база данных.

<?php
add_action('rest_api_init', function () {

register_rest_route('libraries/v1', '/all', array(
'methods' => 'GET',
'callback' => 'retrieve_libraries'
) );

} );

function retrieve_libraries( $data ) {

global $saic3_LibraryIndex;
$query = "SELECT * FROM `Library`";
$list = $saic3_LibraryIndex->get_results($query);
return $list;

}

В моем JavaScript я запускаю ajax-вызов при загрузке страницы, чтобы попытаться динамически заполнить страницу на основе информации в БД. Пока я просто использую этот звонок, чтобы убедиться, что я что-то получаю.

 <script type="text/javascript">jQuery(document).ready(function( $ ){

$.ajax({
url: "/wp-json/libraries/v1",
method: 'GET',
success: function(response) {
console.log(response);
},
failure: function(err) {
console.log(err);
}
});
});

</script>

Маршрут проходит успешно и не дает мне 404, но ответ, который я получаю, не содержит данных. Ответ просто

{namespace: "libraries/v1", routes: {…}, _links: {…}}
namespace
:
"libraries/v1"routes
:
/libraries/v1
:
endpoints
:
[{…}]
methods
:
["GET"]
namespace
:
"libraries/v1"_links
:
{self: "{`my-url-.com`/wp-json/libraries/v1"}
__proto__
:
Object
/libraries/v1/all
:
endpoints
:
[{…}]
methods
:
["GET"]
namespace
:
"libraries/v1"_links
:
{self: "`my-url-.com`/wp-json/libraries/v1/all"}
__proto__
:
Object
__proto__
:
Object
_links
:
up
:
[{…}]
__proto__
:
Object
__proto__
:
Object

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

0

Решение

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

add_action('rest_api_init', function () {
register_rest_route('libraries/v1', '/all', array(
'methods' => 'GET',
'callback' => 'retrieve_libraries'
) );
} );

function retrieve_libraries( $data ) {
$second_db = new wpdb(DB_USER, DB_PASSWORD, "saic3_LibraryIndex", DB_HOST);
$query = "SELECT * FROM `Library`";
$list = $second_db->get_results($query);
return $list;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]