Код ниже является моей пользовательской конечной точкой, где я пытаюсь извлечь данные из моего 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 и просто использовать этот вызов для захвата локальных сообщений, но это все равно дает мне тот же ответ в консоли. Я почти уверен, что конечная точка написана неправильно, просто не уверен, как правильно ее написать.
Так как я пытался подключиться к другой базе данных за пределами 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;
}
Других решений пока нет …