Я сейчас пытаюсь обернуть голову вокруг Wordpress и его связи с REST API. Все эти проблемы возникают только в контексте разработки плагинов. До сих пор я настроил свою конечную точку и написал свой обратный вызов, который будет выполняться всякий раз, когда кто-то отправляет GET-запрос на указанную конечную точку. Однако мой обратный вызов никогда не вызывается. Это файл, который я написал до сих пор.
/*
* Plugin Name: cola-learning
*/
if(!defined('ABSPATH')){
die;
}
if(!function_exists('add_action')){
echo 'You cant access this ressource!';
exit;
}
function PrintRESTResponse()
{
return rest_ensure_response("student");
}
function SetupREST()
{
return register_rest_route("student/v1","/view/",[
'methods' => 'GET',
'callback' => 'PrintRESTResponse'
],false);
}
add_action('rest_api_init','SetupREST');
Возможно, это также может помочь, если я дам некоторую справочную информацию о моей машине для разработки: - ОС: Windows 10 - Сервер: Apache Веб-сервер (входит в состав XAMPP) - Версия Wordpress: 5.3.2 - PHP Версия: 7.4 - Среда разработки: Eclipse 2019-12 CDT (с PHP Plugin)
От мои исследования, все должно работать нормально. Тем не менее, это не: / Я пропустил что-то важное?
Обновление:
WordPress REST API Routing
WordPress is наличие маршрута по умолчанию для всех запросов, направленных в REST API (по крайней мере, если вы используете XAMPP с модулем приложения Bitnami WordPress). Теперь, если кто-то хочет отправить запрос в указанный API REST, ему необходимо использовать URL-адрес в форме ip: port / wp-json / rest_route . ip повторяет IP-адрес сервера, на котором размещен WordPress. порт - порт указанного сервера. Однако wp- json - это часть, которая отличается от обычного запроса от запроса к REST API. Все после этой части ( rest_route ) является маршрутом отдыха, который я определил в приведенном выше исходном коде.
Что пошло не так?
Мой запрос был направлен не на ту конечную точку. Поэтому я использовал URL 'localhost: wpPort / wordpress / student / v1 / view /'. Тем не менее, часть 'wp-json /' отсутствует. Поэтому WordPress будет искать страницу, которая не существует в первую очередь. Вместо этого я должен был использовать URL 'localhost: wpPort / wordpress / wp-json / student / v1 / view /'.