Главная страница » Блог » Как отключить REST API для неавторизованных пользователей?

Как отключить REST API для неавторизованных пользователей?

Как отключить REST API для неавторизованных пользователей?

В WordPress REST API по умолчанию открыт для всех, поэтому закрывают его через фильтр rest_authentication_errors: если функция is_user_logged_in возвращает ложь, фильтр отдаёт ошибку WP_Error с кодом 401, и анонимные запросы к маршрутам API перестают выполняться. Авторизованные пользователи при этом сохраняют полный доступ, а сам API не отключается глобально. Полностью убирать поддержку REST или блокировать адрес wp-json на уровне сервера не стоит — это ломает редактор блоков, проверку состояния сайта и часть плагинов.

Практический нюанс: некоторым плагинам нужны публичные маршруты — формы обратной связи, онлайн-оплата, карты, кэширующие сервисы. Поэтому в фильтре стоит прописать исключения по пространству имён маршрута, а не рубить всё подряд. Проверка занимает минуту: откройте адрес сайта с добавлением wp-json/wp/v2/posts в режиме инкогнито — должен прийти ответ с кодом 401 или 403, а в админке под своей учётной записью REST обязан работать без ошибок.

Мини-чек-лист после включения ограничения: откройте редактор записей и убедитесь, что блоки загружаются; проверьте экран «Здоровье сайта»; отправьте тестовую заявку через форму; пролистайте страницы с картами и слайдерами; посмотрите логи сервера на предмет 401 от собственных сервисов. Если что-то отвалилось, добавьте нужный маршрут в белый список, а не отключайте защиту целиком.

Внимание:
Условия: Продвижение сайта ежедневными статьями — от 15 000 ₽/мес (1-й месяц — 25 000 ₽, настройка). Если бюджет подходит — посмотреть тарифы →
Прокрутить вверх