Rest api в CMS WordPress – что это, для чего используют, как отключить и убрать лишний код

Чистим WordPress

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

Что это такое json rest api

В большинстве статей в интернете разъясняют очень смутно, что это такое. В принципе любое подключение формируется на уровне ядра WordPress, то есть большинство директорий в области head формируется с помощью хука wp_head.

  • API – общепринятый протокол передачи данных. С помощью специальных программных команд две программы соединяются.
  • REST – особый протокол, который сжимает передачу данных по апи и поддерживает http и https.
  • Json – в сущности это JavaScript скрипт выдает на экран работу двух частей rest и api. Некоторые плагины для WooCommerce используют данные способы передачи – это нужно учитывать.

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

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

Причина чтобы отключить rest api проста – данным подключением никто из пользователей не применяет. Точнее применяют, но очень редко, в основном разработку делают в файлах, а не по удаленному доступу. Но некоторые приложения на основе сайтов используют эту технологию, опишу по пунктам в каких сдучаях стоит их деактивировать.

  • Почти 100 процентов админов не знают что это такое, чем не пользуемся, то отключаем.
  • Вероятно будет медленнее загружаться сайт.
  • Бывает взаимодействуют с ними для DDoS атак.
  • Много дублей и НКС в панели вебмастера Яндекса.
  • Ненужное подключение с ссылкой в head на страницу с индексируемым содержимым, то есть в шапке появляется ссылка на внутреннюю автоматическую страницу, которая благополучно сканируется ПС.
  • Иногда выдает 404 ошибку, чем портит отношения с поисковыми системами.
  • Не совместимость с некоторыми версиями PHP.
  • Не корректно работает с некоторыми хостингами, бывает отдает ошибку «Выдал неожиданный вариант».

Где раcполагается json rest api

Для начала разберемся есть ли это подключение на сайте, некоторые разработчики самостоятельно удаляют этот пункт из HTML кода сайта.

Код страницы в браузере.
HTML.
  1. На любой записи контента сайта нажимаем комбинацию клавиш CTRL+U, открывается исходный код. Тут же рядом располагается jquery migrate.
  2. Далее жмем CTRL+f5, открывается окно поиска, в него водим json.
  3. Если ничего не найдет, значит дальше статью можно не читать, всё в порядке. В противном случае ссылка найдется, можете на нее нажать и увидите что подгружается в этом файле, какой огромный код, он на этом он не заканчивается ниже еще больше.
Рест апи в вордпресс.
Как выглядит rest api.

Как отключить api в WordPress

Данная функция срабатывает с помощью кода wp_head он обрабатывается и выводит целую область с различными строками и внешними скриптами, но об этом в других статьях.

Применяем код в function

Часто затрагиваемый документ любого шаблона это 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' );

Переходим Внешний вид – Редактор тем – function php, вставляем его в самый низ и обновляем настройки. Конечно лучше через FTP соединение, чтобы при случае можно откатить все изменения если шаблон заклинит.

Редактор шаблона в админке.
Админка WP.

Далее снова идем на любую страницу блога WordPress, переходим в исходный HTML и ищем rest api. Если его нет, то справились с задачей, смогли удалить еще одно ненужное в WordPress.

С помощью Clearfy PRO

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

ClearfyPRO.
Клеарфай про.

У плагина есть еще около 45 возможностей улучшения и чистки движка WordPress от лишних включений, которых в нем очень много, особенно борьба с дублями и интерфейсное появление предупреждения о cookie.

Клеарфай с 15%-ной скидкой

Disable WP REST API

Следующий метод с помощью миниплагина Disable WP REST API, можете скачать по ссылке на странице репозитория WordPress либо из админки WP, так он выглядит в поиске. Не требует настройки и не имеет своего пункта в главном меню Вордпресс, поставили и забыли.

Первый модуль расширения.
Дополнение функционала.

Как снова включить если не работает Rest Api

Если не работает и блокировка идет на уровне шаблона или плагина, то убираем эти блокираторы, радуемся снова подключению. Если ничего не делали, то Json в WordPress подключен автоматически, как показывал в начале записи, никаких дополнительных манипуляций не нужно. При нехватке возможностей у стандартных скриптов, советую поставить плагин JSON Content Importer он расширит действие на страницы feed и некоторые другие сущности WordPress.

Импортер для удаленной разработки.
Impoter.

JWT Auth — WordPress JSON Web Token Authentication

JWT Auth — WordPress JSON Web Token Authentication плагин для создания специальных авторизаций (authentication), при помощи секретных ключей и токенов. Конечно не особо понятно, но для разработчиков это будет простой метод управления регистрациями и удаленным доступом, специалисты советую работать и создавать программы для rest api в WordPress с помощью языка Python. Также одной интересной технологией являются dns prefetch.

Модуль JWT.
Authentication для ВП.

Инструмент выполняет только одну задачу, что не совсем рационально если ставить под каждый процесс отдельный инструмент, лучше использовать готовое решение в виде Клеарфай. Про то как кастомизировать можно писать бесконечно, это тема для другой статьи.

Женя

Занимаюсь разработкой WordPress уже больше 5 лет, делюсь своими знаниями и опытом на этом блоге.

Оцените автора
WPHacks.ru
Добавить комментарий