Впервые обнаружив на одном из сайтов ссылки с директорией wp-json и oembed в поиске, тут же было предпринято отключение всех фильтров REST API. Как оказалось позже, это повлияло на работу некоторых плагинов. В частности на Contact form 7, он просто перестал отправлять почту. Чтобы понять, что причина сбоя вовсе не в плагинах, мне пришлось вспоминать все мои последние действия на сайте. Убедившись, что причина как раз в отключении REST API, я удалила все функции и решила понять, для чего же нужна эта структура в WordPress. Посетив сайт developer.wordpress.org и ознакомившись со справочником по REST API, стало понятно, что это очень необходимый интерфейс для разработчиков плагинов. Он предназначен для устранения разрыва между ядром PHP WordPress и встроенным JavaScript. Так что отключить его, значит лишить сайт некоторой функциональности. Возможно, кто-то скажет, что REST API имеет некоторую уязвимость. Но если вы будете постоянно обновлять WordPress, следить за актуальностью версий плагинов, то эти простые действия обезопасят ваш сайт.

Как убрать wp-json и oembed из поиска.

Включение REST API обратно, возвращает все ссылки с wp-json и oembed в поиск. Поэтому я не нашла ничего лучше, чем заблокировать их в файл robots.txt. 

Disallow: */wp-json/oembed/

Но некоторые вебмастера все-таки придерживаются мысли, что нет необходимости блокировать wp-json. Якобы поисковики их проиндексируют, но не отразят в поиске. Кто-то рекомендует создать файл .htaccess для папки /wp-json с текстом Deny from all. Все три варианта имеют место быть, но я пока выбрала запрет в robots.txt.

Комментарии

13 Комментариев

  1. Здравствуйте, уважаемая Наталья!
    Подскажите, как обратно включить REST API в WordPress, если он откючен или удален? Из-за этого у нас проблемы...
    Заранее спасибо!

    1. Здравствуйте!
      1. API REST включен в WordPress 4.7 автоматически, если ваша версия ниже, то обновите систему.
      2, Тщательно проверьте свой functions.php на наличие кода отключающего REST API.
      3. Проверьте не установлен ли плагин Disable REST API или похожий.
      4. Проверьте и сохраните вновь настройку Постоянных ссылок.
      5. Посмотрите свой .htaccess, замените AllowOverride None на AllowOverride All (если данные настройки указаны) .

  2. столько всего перепробовала, чтобы включить rest api - ничего не помогло, а просто действие - пересохранить настройки постоянных ссылок - и все заработало! спасибо огромное за подсказку!

    1. Сохранил настройки постоянных ссылок и продолжил дальше заниматься поиском устранения выпадающей ошибки wp-json. Прочитал ваш комментарий и решил проверить на своем сайте..., блин, работает, ошибка не выпадает. Я пять раз сказал - что это такое??? Как такое может быть??? Я не понимаю. Ведь я уже код менял в редакторе functions.php и т.д., а тут то всего надо было пересохранить настройки постоянных ссылок.

      1. Иногда забывается самое простое. На ошибках учимся.:)

  3. От Екатерины поступил такой вопрос:
    На моем сайте (я только работаю над ним) вышли ошибки: REST API выдал ошибку Производительность REST API это способ коммуникации между самим WordPress и другими приложениями. К примеру, экран редактора блоков использует его для отображения и сохранения ваших записей и страниц. Запрос к REST API неудачен из-за ошибки. Ошибка: [] cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received Ваш сайт не смог выполнить петлевой запрос Производительность Петлевые запросы используются для запуска запланированных заданий, а также используются встроенным редактором кода плагинов и тем для проверки корректности кода. Петлевой запрос к вашему сайту не удался, возможности, зависящие от его работоспособности сейчас не работают как нужно. Возникла ошибка: (0) cURL error 28: Operation timed out after 10002 milliseconds with 0 bytes received.

    Решение:
    Выполните такие действия, чтобы выявить причину ошибки:
    1. Перейдите в корень папки сайта на хостинге.
    2. Откройте файл wp-config.php.
    3. Измените define('WP_DEBUG', false); на define('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', true); - это необходимо для выявления ошибок на сайте. Перейдя на сайт отобразится информация о конфликте или ошибке. По окончании работ вновь переключите true на false.
    4. Скорее всего ваша ошибка связана с каким-то плагином или темой.
    5. Если ошибки не отобразились, то установите плагин Health Check & Troubleshooting и поочередно включайте плагины или тему, чтобы выявить виновника.
    6. Уточните у провайдера хостинга установлена ли последняя версия PHP и библиотеки cURL. Не ограничен ли лимит памяти сервера (memory_limit). Нет ли ограничений на выполнение wp-cron и не отключен ли loopback.

  4. Мне помог дебагер в поиске ошибок, после устранение моей ошибки, главная ошибка (REST API connect) решилась

  5. Наталья, добрый день! На сайте примерно полгода висело сообщение об ошибке REST API, в разделе «здоровье сайта». И тогда же заметил, что стала быстро расти в размерах база данных. Сменил тему на дефолтную, ошибка исчезла. Но база продолжает пухнуть. За неделю увеличивается на 5-7 мегабайт, только за счёт таблицы «options». За последние пять дней уже 10 мегабайт удалено, во время оптимизации. Подскажите, где искать проблему?

    1. Здравствуйте! Очистите все транзиенты плагином Transients Manager. Если вы связываете проблему с новой темой, то попробуйте ее сменить. Изучите таблицу options, по транзиентам можно определить виновника, это может быть и плагин.

Оставьте комментарий

Комментарии, считающиеся спамом или исключительно рекламные по своему содержанию, будут удалены. Допускается включение ссылки на соответствующий контент, но текст должен иметь отношение к теме поста. Также будут удалены анонимные, оскорбительные, содержащие ненормативную лексику, вводящие в заблуждение или клеветнические комментарии.

Для публикации кода в комментариях используйте следующие шорткоды -
[php]ваш код[/php] - для PHP, [css]ваш код[/css] - для CSS, [code lang="js"]ваш код[/code] - для HTML или JS, указав соответствующий lang.

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