Почему вордпресс долго грузит админку
При входе в админку вордпресса страница либо долго грузит или выскакивает ошибка 504. Это значит, в админке происходит агрессивная проверка не фоном, а прямо при генерации страницы. Сделано так для того, чтобы при заходе в админку мы сразу, в меню видели что есть обновления. Если была бы фоновая проверка, то чтобы увидеть наличие обновлений нам нужно было бы зайти на страницу еще раз.
Тормоза и объектное кэширование
Если на сайте установлен плагин объектного кэширования, то ситуация с тормозами только усугубляется. Потому что когда используется объектное кэширование, то нет никаких временных опций в базе данных — все пишется в кэш, и стоит очистить этот кэш, очищается все, включая данные о последней проверке новых версий: ядра, плагинов, тем и переводов.
Решение (отключаем тормоза)
Чтобы избавится от тормозов, но при этом не отключать проверку обновлений совсем. Вставьте следующий код в файл темы functions.php
.
Этот код полностью отключает «агрессивную» проверку обновлений в админке. Но не трогает проверку обновлений по крону. Также, если нужно проверить наличие новых версий прямо сейчас, то заходим на страницу Консоль > Обновления — там «агрессивная» проверка не отключается и срабатывает каждую минуту…
/**
* Отключаем принудительную проверку новых версий WP, плагинов и темы в админке,
* чтобы она не тормозила, когда долго не заходил и зашел...
* Все проверки будут происходить незаметно через крон или при заходе на страницу: "Консоль > Обновления".
*
* @see https://wp-kama.ru/filecode/wp-includes/update.php
* @author Kama (https://wp-kama.ru)
* @version 1.0
*/
if( is_admin() ){
// отключим проверку обновлений при любом заходе в админку...
remove_action( 'admin_init', '_maybe_update_core' );
remove_action( 'admin_init', '_maybe_update_plugins' );
remove_action( 'admin_init', '_maybe_update_themes' );
// отключим проверку обновлений при заходе на специальную страницу в админке...
remove_action( 'load-plugins.php', 'wp_update_plugins' );
remove_action( 'load-themes.php', 'wp_update_themes' );
// оставим принудительную проверку при заходе на страницу обновлений...
//remove_action( 'load-update-core.php', 'wp_update_plugins' );
//remove_action( 'load-update-core.php', 'wp_update_themes' );
// внутренняя страница админки "Update/Install Plugin" или "Update/Install Theme" - оставим не мешает...
//remove_action( 'load-update.php', 'wp_update_plugins' );
//remove_action( 'load-update.php', 'wp_update_themes' );
// событие крона не трогаем, через него будет проверяться наличие обновлений - тут все отлично!
//remove_action( 'wp_version_check', 'wp_version_check' );
//remove_action( 'wp_update_plugins', 'wp_update_plugins' );
//remove_action( 'wp_update_themes', 'wp_update_themes' );
/**
* отключим проверку необходимости обновить браузер в консоли - мы всегда юзаем топовые браузеры!
* эта проверка происходит раз в неделю...
* @see https://wp-kama.ru/function/wp_check_browser_version
*/
add_filter( 'pre_site_transient_browser_'. md5( $_SERVER['HTTP_USER_AGENT'] ), '__return_true' );
}