为什么我的 Wordpress 自定义路由不从数据库中返回数据?
Why isn't my Wordpress custom route returning data out of the database?
下面的代码是我的自定义端点,我试图从我的 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;
}
下面的代码是我的自定义端点,我试图从我的 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;
}