Как использовать REST API в WordPress для создания собственных настроек

Что такое REST API в WordPress и зачем он нужен

REST API – это современный способ взаимодействия с WordPress через HTTP-запросы. Он позволяет создавать, читать, обновлять и удалять данные сайта программным путем. Использование REST API особенно актуально, когда нужно интегрировать WordPress с внешними приложениями, мобильными клиентами или создавать динамичные админские интерфейсы.

В этой статье мы разберём, как на базе REST API создать собственный набор настроек (опций), которые можно будет управлять через API-запросы. Это полезно для разработчиков, которые хотят расширить функциональность сайта и управлять его параметрами программно.

Подход позволит упростить интеграцию, автоматизировать процессы и повысить гибкость сайта без прямого вмешательства в базу данных.

Регистрация собственного REST API маршрута для настроек WordPress

Для начала нам нужно зарегистрировать собственный маршрут в REST API WordPress. Это делается с помощью хука rest_api_init. Создадим функцию wpfront_register_settings_route, которая опишет маршрут и методы обработки запросов.

function wpfront_register_settings_route() {
    register_rest_route('wpfront/v1', '/settings', [
        'methods' => 'GET',
        'callback' => 'wpfront_get_settings',
        'permission_callback' => function () {
            return current_user_can('manage_options');
        }
    ]);
    register_rest_route('wpfront/v1', '/settings', [
        'methods' => 'POST',
        'callback' => 'wpfront_update_settings',
        'permission_callback' => function () {
            return current_user_can('manage_options');
        }
    ]);
}
add_action('rest_api_init', 'wpfront_register_settings_route');

В этом коде мы создаём два эндпойнта: GET для получения настроек и POST для их обновления. Обратите внимание на параметр permission_callback, который проверяет права пользователя. Это важно для безопасности, чтобы никто без прав не мог менять настройки.

Функция получения настроек через REST API

Далее реализуем функцию wpfront_get_settings, которая вернёт текущие значения наших опций из базы данных.

function wpfront_get_settings() {
    $settings = [
        'custom_option_1' => get_option('wpfront_custom_option_1', ''),
        'custom_option_2' => get_option('wpfront_custom_option_2', ''),
    ];
    return rest_ensure_response($settings);
}

Здесь мы используем стандартную функцию WordPress get_option для получения значений. Если опция не установлена, возвращается пустая строка.

Функция обновления настроек через REST API

Теперь добавим функцию wpfront_update_settings, которая будет принимать данные из POST-запроса и сохранять их в базе.

function wpfront_update_settings(WP_REST_Request $request) {
    $params = $request->get_json_params();
    if (!isset($params['custom_option_1']) || !isset($params['custom_option_2'])) {
        return new WP_Error('missing_params', 'Отсутствуют необходимые параметры', ['status' => 400]);
    }
    update_option('wpfront_custom_option_1', sanitize_text_field($params['custom_option_1']));
    update_option('wpfront_custom_option_2', sanitize_text_field($params['custom_option_2']));
    return rest_ensure_response(['success' => true]);
}

Обратите внимание на использование sanitize_text_field для очистки входящих данных. Это базовая мера безопасности, чтобы избежать внедрения вредоносного кода.

Тестирование и использование собственного API для настроек

Для тестирования можно использовать инструменты вроде Postman или curl. Например, чтобы получить настройки, выполните GET-запрос по адресу:

https://ваш-сайт.ru/wp-json/wpfront/v1/settings

Для обновления настроек используйте POST-запрос с JSON-телом:

{
  "custom_option_1": "значение 1",
  "custom_option_2": "значение 2"
}
<

Важно отправлять запросы под пользователем с правами администратора, иначе получите ошибку доступа.

Примеры плагинов для расширения REST API в WordPress

Если не хочется писать код с нуля, можно использовать готовые плагины, которые облегчают работу с REST API:

  • WP REST API Controller – позволяет настраивать и управлять выводом данных через API прямо из админки.
  • Advanced Custom Fields (ACF) to REST API – добавляет в API поля, созданные через ACF, что удобно для работы с пользовательскими метаданными.
  • WP REST API Authentication – расширяет методы аутентификации для безопасного взаимодействия с API.

Эти плагины помогут быстро расширить возможности вашего сайта без глубокого погружения в PHP.

Рекомендации по безопасности при работе с REST API

Использование REST API требует особого внимания к безопасности:

  • Всегда проверяйте права пользователя через permission_callback.
  • Санитизируйте и валидируйте все входящие данные.
  • Используйте HTTPS для защиты передачи данных.
  • Ограничивайте доступ к критичным маршрутам только администраторам или определённым ролям.

Это позволит избежать утечек данных и несанкционированного доступа.

Заключение

REST API в WordPress – мощный инструмент для расширения функционала и интеграции. Создание собственных маршрутов для управления настройками открывает широкие возможности автоматизации и кастомизации. Мы показали пример простого, но полного решения с регистрацией маршрутов, обработкой запросов и базовыми мерами безопасности.

Используйте этот подход, чтобы создавать удобные интерфейсы управления и интегрировать WordPress с внешними системами, делая ваш сайт гибким и современным.

Как использовать REST API в WordPress для создания собственных настроек
25.11.2025
Как автоматически удалять старое медиа-содержимое в WordPress
13.03.2026
Как добавить пользовательские роли и права в WordPress без плагинов
13.01.2026
Автоматическое удаление забытых meta-полей в WordPress для оптимизации базы данных
03.04.2026
Как настроить автоматическое сохранение черновиков в WordPress для предотвращения потери данных
07.12.2025