JSON REST API в WordPress: что это и как отключить

JSON REST API в WordPress: что это и как отключить

https://

Всем привет. Разработчики WP хотят сделать его максимально современным фреймворком для создания сайта. Чтобы делать на основе Вордпресса крутые приложения, вытаскивать данные – в ядро WordPress встроили подключение JSON REST API, что это такое и почему для рядового администратора они не нужны, я расскажу в этом уроке.

JSON REST API: что это такое

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

API

Видим из названия аббревиатуру API, означающая, что добавляется возможность подключения к ресурсу с помощью специальных настроек. Точнее сказать к WP можно подключить какое-либо приложение, берущее информацию с запросами из вордпресс.

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

Rest

Rest – спецификация передачи данных API, проще говоря Rest одна из разновидностей API. Его особенность в сжатии передаваемых данных и встроенная поддержка интернет протоколов htpp-https. Особенностью является обработка GET параметров.

Json

Json – это обработчик, управляющий передачей. Это простой js скрипт, дружественный для большинства систем, распознаваемый людьми и компьютерами. Этот алгоритм совершает соединение WordPress с внешним фреймом, посредством встроенных инструкций. Также управляет, переводит данные в нужный язык для разных программ и может их связывать друг с другом.

Почему нужно отключить json rest api

Выделю четыре причины для отключения инструкций json в WordPress:

  1. 95% администраторов данный функционал не нужен, они про него не знают.
  2. Возможна более медленная работа, рекомендую совместно убрать загрузку emoji.
  3. Появление уязвимости для DDoS атак.
  4. Ненужное подключение с ссылкой в head на страницу с индексируемым содержимым, то есть в шапке появляется ссылка на внутреннюю автоматическую страницу, которая благополучно сканируется ПС. Так они выглядят визуально:
Рест апи на странице
Если вы или ваш личный разработчик пользуется данной функцией, то не выключайте.

Как убрать json rest api

Чтобы убрать тег link с подключением wp-json, использую два метода: с помощью плагина и кодом.

Плагин Clearfy PRO

Специалисты в Clearfy PRO учли особенность WordPress и включили пункт по удалению. Переходим в раздел КОД, отмечаем в зеленую зону соответствующий переключатель.

Настройка

После деактивации ссылка с тегом link исчезнут из раздела head.

Есть еще плагин Disable REST API, но работающий не со всеми темами. Испытывал на нескольких шаблонах, бывало не срабатывал. Но имеет настройку для страниц и таксономий с архивами где можно выводить rest и json.

С помощью кода в function.php

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

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' );

Помещаем вниз файла function.php активной темы. Покажу через админку WP, но вы делаете через FTP с помощью специальной программы редактора кода.

Вставка функций в function

На этом у меня все. До скорого!

Подписывайтесь на канал https://, чтоб не пропускать новые интересные уроки.

Report Page