Как отключить REST API в WordPress без плагинов

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

Что такое REST API и зачем его отключать

WordPress REST API предоставляет стандартный интерфейс для получения, создания, обновления и удаления данных на сайте через HTTP-запросы. Включение REST API открывает возможности для разработчиков, мобильных приложений, внешних сервисов и новых функций в админке.

Однако, если вы не используете REST API или хотите ограничить доступ к нему, его можно отключить для повышения безопасности. Некоторые боты и злоумышленники могут использовать его для сбора информации о сайте или попыток взлома.

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

Полное отключение REST API с помощью функций темы

Для полного отключения REST API достаточно добавить в файл functions.php вашей темы код, который будет блокировать все входящие запросы к API:

<?php
function wptalk_disable_rest_api() {
    if (!is_user_logged_in()) {
        wp_die('REST API отключен.', '', array('response' => 403));
    }
}
add_action('rest_api_init', 'wptalk_disable_rest_api', 1);

Этот код проверяет, залогинен ли пользователь. Если нет — возвращает ошибку 403 Forbidden для всех REST API запросов. Таким образом, REST API будет доступен только администраторам и другим залогиненным пользователям.

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

<?php
function wptalk_disable_rest_api_everyone() {
    wp_die('REST API отключен.', '', array('response' => 403));
}
add_action('rest_api_init', 'wptalk_disable_rest_api_everyone', 1);

Отключение REST API для гостей, оставляя доступ для админов

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

<?php
function wptalk_restrict_rest_api_access() {
    if (!is_user_logged_in() || !current_user_can('edit_posts')) {
        wp_die('Доступ к REST API запрещён.', '', array('response' => 403));
    }
}
add_action('rest_api_init', 'wptalk_restrict_rest_api_access', 1);

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

Отключение REST API только для определённых маршрутов

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

<?php
function wptalk_disable_rest_api_routes($access) {
    $route = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';

    // Блокируем доступ к маршрутам пользователей
    if (strpos($route, '/wp/v2/users') !== false) {
        return new WP_Error('rest_forbidden', 'Доступ к пользователям запрещён', array('status' => 403));
    }

    // Можно добавить другие маршруты по аналогии

    return $access;
}
add_filter('rest_authentication_errors', 'wptalk_disable_rest_api_routes');

Этот код проверяет URI запроса и блокирует доступ к REST API маршрутам пользователей. Аналогично можно блокировать комментарии, таксономии и другие маршруты.

Плагины для управления REST API — когда использовать

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

  • Clearfy Pro — позволяет отключать REST API и настраивать доступ по ролям.
  • WPRemark — с дополнительным функционалом безопасности и оптимизации.

Но если нужна простая и быстрая блокировка, кодовые решения выше лучше и не нагружают сайт лишними плагинами.

Проверка работы и отладка отключения REST API

После внесения изменений важно проверить, что REST API действительно отключен или ограничен. Самый простой способ — открыть в браузере URL https://ваш-сайт.ru/wp-json/. Если вы видите ошибку 403 или сообщение, значит ограничение работает.

Для тестирования запросов можно использовать Postman или curl:

curl -i https://ваш-сайт.ru/wp-json/wp/v2/posts

Если REST API отключен, сервер вернёт ошибку доступа. Если нет — будет список постов.

Выводы и рекомендации

Отключение REST API в WordPress без плагинов — простая и эффективная мера безопасности. Выбирайте подходящий способ в зависимости от задач: полное отключение, ограничение для гостей или блокировка отдельных маршрутов. Использование собственного кода в functions.php минимизирует нагрузку и позволяет гибко настраивать доступ.

Если хотите расширенные возможности и удобный интерфейс — рассмотрите плагины из каталога WPShop.

Автоматическое отключение неактивных товаров в WooCommerce
04.05.2026
Как избежать проблем с разрешением файлов в WooCommerce при загрузке изображений товаров
19.05.2026
Как создать собственный тип записи (Custom Post Type) в WordPress
07.02.2026
Как изменить URL авторского блога в WordPress
29.03.2026
Автоматический импорт контента из Instagram в WordPress
16.03.2026