Ваш путь: Главная » Сниппеты, хаки, функции » текущая страница

возможно заказать разработку или сопровождение, услуги вашего сайта/блога


обновлено 2024-07-09 в теме: Сниппеты, хаки, функции
Запросто с WordPress создание и продвижение сайтов ATs media

REST API WordPress что это, для чего и как работает; нужно ли отключать?

Нынче приглядимся пристальнее к функционалу REST API WordPress – что это наконец такое за событие(я), как работает и для чего его отключают? Дело в том, что сейчас поступает много вопросов от владельцев сайтов об этой, скажем так, фиче, а именно не совсем о ней, но о том, что у достаточно большого числа из клиентов отказывает на сайте то или оное оборудувание, функционал, особливо после обновлений самого ядра WP либо плагинов!

Давайте на примере с Solid Security Basic (прежнее имя iThemes Security) посмотрим что может случиться, если неправильно и бездумно пихать в код шаблона всякие коды!! Итак, после обновлений 9.3.1 до 9.3.2 перестает правильно отрабатывать, а именно по кнопке Сохранить настройки ничего не сохраняет!..

 

К примеру, ранее по подобным причинам переставал работать один из известных SEO плагинов, но об этом в следующий раз, если будет в том прок:

 


 

 

 

Если говорить лаконично – коротко: Rest api — достаточно новая инфраструктура WP (стартует от версии  4.4 и дальнейшая динамика: (по версиям Вордпресс)), коя предназначена в том числе для разработки приложений и связки cms системы с внешним миром.

 

Основа – JSON (JavaScript Object Notation) – простыми словами: получение, оправка и хранение информации – получать и отправлять содержимое сайта из вне в виде json..

 

строка в мета исходного кода выглядит так:

 

 

<link rel='https://api.w.org/' href='http://example.com/wp-json/' />

 

 

 

WordPress обновление: Robots API – директива max-image-preview:large (как отключить, если требуется?)

ЕСЛИ нужно: как отключить ссылку на виртуальную папку wp-json

 

 

REST API WordPress как отключить, и нужно ли

 

 

Работать с функционалом (пользоваться его прелестями) может и обычный администратор сайта, знакомый только с админкой, – собственно, для этого он предназначен. Однако, как некоторые админы считают, неведома по каким причинам, будто бы все это вредит сайту, иными словами страдает его безопасность и нервы владельца.

 

Так ли это!? Отчасти так… Однако, чтобы решать отключать, или не отключать, либо отключить выборочно, следует ясно представлять (понимать) те цели и обстоятельства работы REST, чтобы решать к действию!

 

 

К примеру, вот строка, причина бага с плагином Solid Security:

 

 

remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 ); // приоритеты 10

 

 

При сохранении, выскакивает такое предупреждение: Подходящий маршрут для URL и метода запроса не найден

 

 

Подходящий маршрут для URL и метода запроса не найден...

 

 

как отключить REST API при помощи плагинов

 

 

REST API WordPress как отключить, и нужно ли

 

отключить REST API с плагином или БЕЗ плагина вот в чем вопрос!

 

 

МетОды, как видите, достаточно широки: для подобных целей “отключения API rest” существует такие плагины как Disable REST API или Clearfy Pro и пр. – последний достаточно большущий возможностями!

 

Как они работают и полезны ли – не знаю, глубоко не разбирался! я ими не пользуюсь. Говорят, что немного полезны) Но мой взгляд, все подобные расширения достаточно бессмысленны!

 

 

Во-первых, вы становитесь целиком и полностью от них зависимы, а во-вторых, то же самое…

 

Если вы решаетесь как-то оптимизировать сайт, то, как и говорилось, нужно представлять цели, возможности и последствия!.. а в этом случае вам никакие плагины на этот счет не потребуются, ибо вы и сами и ваш сайт (ну, или сайт клиента) уже плагин, который требуется подстроить, и только

 

 

вот некоторые из доступных фильтров – деактивации

 

Как правило, данные сниппеты добавляются в файл functions.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 );
remove_action( 'template_redirect', 'rest_output_link_header', 11 );
// работа с cookie
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 );

// отключаем REST API практически глобально
remove_action( 'init', 'rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 ); // этот как раз и причина некоторых багов на сайте с плагином Solid Security Basic (был: iThemes Security)
remove_action( 'parse_request', 'rest_api_loaded' );

// отключаем Embeds связки с REST API прием/передача данных
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' );

 

 

 

REST запросы возможно закрыть таким вариантом и, что интересно, для неавторизованных user сайта

 

 

####
add_filter( 'rest_authentication_errors', function( $result ) {
// maybe authentication error already set! = возможно, ошибка аутентификации уже установлена!
if ( empty( $result ) ){
if ( ! is_user_logged_in() )
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) ); // В данный момент вы не вошли в систему = статус 401
}
return $result;
});

 

 

Отключить ссылку на виртуальную папку wp-json

и иные возможности developer.wordpress можно взглянуть…

 

 

Из вышесказанного – обоснованно стало ясно, что отключать REST API не рекомендуется! Однако – не рекомендуется, это НЕ запрет!..

 

REST API широко отрабатывает в административной панели WordPress (настройки плагинов и пр.), а посему отключать его не только недальновидно, НО и в какой-то мере опасно !! если вы пока что неопытны в управлении сайта!

 

 

На этом слагаю свои перья и принимаюсь за следующую книгу пост по подобной теме, в котором рассмотрим подробнее по каждому коду API…

 

 

 

Создание… продвижение сайтов; помощь по сайту, настройки, сопровождение и пр. – студия ATs media запросто с WordPress

 

 



На этом моя повесть нынче решительно окончена...!




Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...





Нажатия на кнопочки определяют Ваше высокое гражданское сознание

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©