Json rest api в CMS WordPress: что это такое и как удалить

Плагины для оптимизации кода

С версии 4.0 ввели удобный функционал на json rest api WordPress, помогающая разработчикам связываться с движком через специальные интерфейсы программ. Как это действует и нужно ли для простого администратора напишу дальше.

Располагается подключение с ссылкой на файл в разделе head, генерируется инструкцией wp_head, выглядит так.

<link rel='https://api.w.org/' href='https://site.ru/wp-json/' />
Пример отображения
Пример вставки

Что это такое и как работает json rest api

Метод создан для удаленного получения с WordPress, различных данных, например статьи и комментарии, которые активно используются в мобильных приложениях на основе сайта. Разберу списком, что такое означает каждая фраза:

  • API это возможность подключаться к сайту удаленно без захода в админку, управлять им
  • REST – разновидность API, особенность заключается в архивировании, быстрой передаче версий данных по протоколу
  • Json – обработчик, не достаточно просто отправить информацию, нужно указать как открывать, это javascript с инструкциями

Так он работает с внешними приложениями, применяя команды из программы, сможете вытягивать любую информацию: записи, комментарии, пользователей, cookie, php и любой контент. Советую к прочтению как удалить ld application.

Для включения ничего делать не нужно, он изначально активен, готов к применению, можете пробовать соединяться с WordPress через соответствующие приложения, написанные на Python и других языках.

Зачем отключать

Причины для отключения банальные, но разберу также списком причины:

  1. Простому админу вордпресс не нужен этот функционал, потому что никаких разработок не ведется
  2. Немного съедает скорость загрузки сайта
  3. При некоторых совпадениях возможна уязвимость для DDoS
  4. Чистота кода – что не используем, то стираем
  5. Меньше времени на индексацию, робот не будет каждый раз выкачивать эти страницы, переходить по ссылкам

Убираем json rest api с WordPress

Чтобы удрать rest api не нужно иметь знания программирования, существует несколько хороших дополнений и ручных способов.

С помощью Clearfy

ClearfyPRO умеет убирать из исходного кода Json, стоит включить соответствующую опцию в настройках.

плагин клеарфай
ClearfyPRO

При проверке блога на наличие тега link, его не будет.

link исчез
Чистый код

Clearfy улучшает, ускоряет сайт еще по 50 пунктам. Является обязательным для WordPress, присутствует на всех ресурсах под моим управлением. Даю скидку в 15% на продукты от WPShop, жмите на кнопку, промо вычитается автоматически.

Clearfy со скидкой

Не рекомендую задавать страницам 404 ошибку или редирект, достаточно убрать link из раздела head.

Плагин Disable Rest Api

Существует много подключений Rest api не только, которое показывал выше. Например YoastSEO и WooCommerce делают свои шлюзы. Disable Rest Api их видит и закрывает, причем имеет фильтр тех элементов, которые хотите оставить. Так выглядит при поиске в админке.

Второй плагин
Поиск в админке

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

Делаем фильтрацию отключения json
Поиск всех файлов

Осторожно пользуйтесь этими функциями особенно при разработке под WooCommerce, школ memberlux, внешним подключением через guthub. Есть хорошие сервисы для защиты контента, действующие так же через рест айпи.

Используем PHP

Метод просто, но для новичков советую использовать плагины. Если решили править код шаблона, то советую действовать через дочернюю тему с использованием FTP соединения. Берем конфигурацию, помещаем ее вниз файла function php.

add_filter('rest_enabled', '__return_false');
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
remove_action( 'init', 'rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
remove_action( 'parse_request', 'rest_api_loaded' );
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );

Способ не всегда срабатывает в WordPress, виду споров с модулями и шаблонами, поэтому проверяйте работоспособность.

В статье рассмотрели что такое json rest api, как его удалить 3 простыми методами не внося правки в ядро WordPress и других приемов кодинга.

Лифанов Валентин

Делаю обзоры, создаю сайты на WordPress с 2008 года. Данный блог покажет плюсы и минусы любой темы и плагина, и даст полезные советы.

Оцените автора
Лучшие шаблоны и плагины для WordPress
Добавить комментарий