Пишем свою конечную точку WP REST API за 2 минуты

Предположим, что перед нами стоит задача — написать конечную точку REST API. Также давайте предположим, что мы ничего не знаем про REST API.

Задача

Главная страница моего сайта содержит блок, включающий в себя магическое слово, и я буду использовать REST API для получения этого слова и вывода его на своем сайте.

<div id="tomsword">... word goes here ...</div>

Что мне потребуется:

  • Магическое слово – пусть это будет “moomins”
  • Конечная точка REST API на моем сайте для отправки слова
  • Немного JS-кода, который будет обращаться к API для получения магического слова

Конечная точка

Эта часть самая простая. Конечные точки REST API находятся в /wp-json, и они имеют свое пространство имен, что позволяет избежать смешивания с конечными точками от других плагинов. Моя конечная точка находится по адресу tomjn.com/wp-json/tomjn/v1/test.

При обращении к конечной точке я буду возвращать слово «moomins». Для этого я подготовил специальную функцию:

function tomjn_rest_test() {
        return "moomins";
}

Я зарегистрировал конечную точку и сообщил WP, что нужно делать, когда эта точка вызывается:

add_action( 'rest_api_init', function () {
        register_rest_route( 'tomjn/v1', '/test/', array(
                'methods' => 'GET',
                'callback' => 'tomjn_rest_test'
        ) );
} );

Отлично! Теперь у меня появилась конечная точка, и мы можем протестировать ее, посетив ссылку:

https://tomjn.com/wp-json/tomjn/v1/test

tomjinrest

Использование конечной точки в теме

Давайте напишем некоторый JS-код в нашем шаблоне:

<script>
jQuery.ajax({
    url: <?php echo wp_json_encode( esc_url_raw( rest_url( 'tomjn/v1/test' ) ) ); ?>
}).done(function( data ) {
    jQuery( '#tomsword' ).text( data );
});
</script>

Все очень просто! Теперь наша главная страница выполняет определенный код при своей загрузке, который получает слово с помощью REST API и помещает его в div.

Написание конечных точек REST API – очень простая и быстрая задача. Конечные точки очень легко защитить. Нет никаких причин для использования AJAX API в будущем.

Блог про WordPress
Добавить комментарий

Получать новые комментарии по электронной почте.