Я пытаюсь добавить пользовательскую конечную точку на мой WP-сервер. Предполагается, что он находится в пространстве имен myplugin/v1
, а маршрут - test
. Поэтому я буду запрашивать /wp-json/myplugin/v1/test
.
. Я использовал следующие источники, чтобы лучше понять, как создать такую конечную точку:
Вот код, который я использую.
<?php
namespace My_Plugin;
class My_Custom_Routes {
public static function get_instance() {
static $instance = null;
if (is_null($instance)) {
$instance = new self();
}
return $instance;
}
private function __construct() {
$this->register_test_route();
}
public function register_test_route() {
add_action('rest_api_init', function($server) {
$server->register_route('myplugin/v1', '/test', array(
'methods' => 'GET',
'callback' => function () {
return 'foobar';
}
));
});
}
}
В другом файле я звоню My_Custom_Routes::get_instance()
, который регистрирует маршрут.
Чтобы проверить, действительно ли зарегистрирован маршрут, я проверяю /wp-json
. Я вижу, myplugin/v1
указан под пространствами имен, и теперь я проверяю, существуют ли маршруты. Но странным является то, что мой маршрут тестирования указан под пустым пространством имен (я думаю, что это пространство имен по умолчанию, но я не совсем уверен). Таким образом, мне фактически нужно было бы позвонить на /wp-json/test
, чтобы позвонить на мою пользовательскую конечную точку. Я включил часть ответа от /wp-json
ниже.
{
"routes": {
"/myplugin/v1": {
"namespace": "myplugin/v1",
"methods": [
"GET"
],
"endpoints": [
{
"methods": [
"GET"
],
"args": {
"namespace": {
"required": false,
"default": "myplugin/v1"
},
"context": {
"required": false,
"default": "view"
}
}
}
],
"_links": {
"self": [
{
"href": "https://localhost:3000/wp-json/myplugin/v1"
}
]
}
},
"/test": {
"namespace": "",
"methods": [
"GET"
],
"endpoints": [
{
"methods": [
"GET"
],
"args": []
}
],
"_links": {
"self": [
{
"href": "https://localhost:3000/wp-json/test"
}
]
}
},
}
}
Есть ли что-то, что я упустил из виду в этих документах? Последние несколько часов я стучал им в голову и не могу понять, что происходит.