WordPress
WordPress прирост в скорости 3 секунды
В данный момент REST API интегрирован в ядро WordPress с версии 4.9, эта технология стабильна, но имеет свои недостатки.
Например, «из коробки» пока нет функции для определения того, что текущий запрос идет по REST API. В WordPress 5 нам обещают добавить wp_is_json_request().
Другой недостаток — при REST запросах подгружается всё ядро WordPress и абсолютно все mu-плагины и обычные плагины, которые очень сильно тормозят ответ сервера на такие запросы.
Именно этот недостаток мы и попробуем исправить.
Кладём файл _mihdan-disable-plugins-for-rest-api.php (подчёркивание нужно, чтобы файл загрузился первым) в папку mu-plugins со следующим содержимым:
<?php
/**
* Plugin Name: Mihdan: Disable Plugins For REST API
* Description: Отключить все плагины при запросах REST API для увеличения скорости ответов
* Version: 1.0
* Author: Mikhail Kobzarev
* Author URI: https://www.kobzarev.com/
*/
if ( false !== strpos( $_SERVER['REQUEST_URI'], '/wp-json' ) ) {
/**
* Отключает плагины, оставляя нужные
*
* @param array $plugins список плагинов
*
* @return array
*/
function mihdan_disable_plugins_for_rest_api( $plugins ) {
// Массив плагинов, которые нужно оставить
$allowed = array(
'mihdan-cabinet/mihdan-cabinet.php',
'mihdan-loadmore/mihdan-loadmore.php',
'mihdan-statistics/mihdan-statistics.php',
);
$plugins = array_intersect( $plugins, $allowed );
return $plugins;
}
add_filter( 'option_active_plugins', 'mihdan_disable_plugins_for_rest_api' );
}
// eof;
