WordPress REST API позволяет программам получать и изменять данные сайта через HTTP. Для начала проверьте открытые endpoints, а для операций записи используйте отдельные учётные данные с минимальными правами.
Где находится REST API
На типовой установке WordPress начните с адреса:
https://example.com/wp-json/
Список опубликованных записей обычно доступен по маршруту:
https://example.com/wp-json/wp/v2/posts
Откройте адрес в браузере или выполните запрос GET. JSON-ответ со списком записей означает, что endpoint отвечает. Пустой список — не обязательно ошибка: опубликованных записей может не быть.
Простой публичный запрос
Для чтения опубликованных записей не требуются права администратора. Тест без токенов:
curl --fail --silent --show-error "https://example.com/wp-json/wp/v2/posts?per_page=3"
Замените example.com на свой домен. Если сайт требует авторизации для чтения, причина может быть в плагинах безопасности, настройках доступа или собственной конфигурации API.
Как безопасно авторизовать интеграцию
WordPress поддерживает Application Passwords — отдельные пароли для доступа программ через API. Используйте HTTPS и специального пользователя с только необходимыми правами. Не передавайте основной пароль администратора внешнему сервису.
Для проверки с собственным тестовым пользователем можно запросить текущую учётную запись:
curl --fail --silent --show-error \
--user "API_USER:APPLICATION_PASSWORD" \
"https://example.com/wp-json/wp/v2/users/me"
Не вставляйте реальный пароль в публичный терминал, скриншот или Git-репозиторий. В рабочей интеграции храните секреты вне исходного кода и используйте механизм секретов окружения.
Как сделать свой endpoint
Собственные маршруты регистрируют через register_rest_route() на хуке rest_api_init. Для всех маршрутов задайте permission_callback; публичность должна быть осознанным решением, а изменения данных требуют проверки прав и валидации параметров.
Не публикуйте endpoint, который изменяет настройки или заказы с permission_callback = __return_true. Для записи также нужны обработка ошибок, ограничение нагрузки и журналирование без утечки персональных данных.
Почему REST API возвращает 401, 403 или 404
- 401 Unauthorized: серверу не переданы корректные данные аутентификации либо она не принята.
- 403 Forbidden: пользователь аутентифицирован, но у него может не хватать полномочий; также возможна блокировка защитным слоем.
- 404 Not Found: маршрут отсутствует, URL неверный или некорректно настроены постоянные ссылки и маршрутизация.
Начните с проверки /wp-json/, затем конкретного endpoint. Посмотрите сетевой ответ, логи PHP, правила защиты и Authorization на сервере. Не отключайте весь REST API ради устранения одной ошибки.
REST API и WooCommerce — не одно и то же
WordPress использует собственные пространства wp/v2. У WooCommerce есть API товаров, заказов и других торговых сущностей: например, wc/v3 при наличии активного WooCommerce. Правила доступа и выдача ключей у WooCommerce могут отличаться от обычных Application Passwords.
Связанные материалы: WooCommerce, создание плагина, безопасность WordPress.
Источники: руководство WordPress REST API и Application Passwords.
Источник: https://developer.wordpress.org/rest-api/using-the-rest-api/
Материал был полезен?
Помогите нам сделать материалы точнее и понятнее.