Я использую этот код в каждом проекте WordPress
Сразу после установки темы я вставляю этот код в файл functions.php.
Основная задача — ускорить загрузку админ-панели WordPress.
При каждом входе администраторской панели WordPress по умолчанию:
- проверяет обновления ядра
- проверяет обновления плагинов
- проверяет обновления тем
И ждёт ответов от серверов обновлений. Именно это вызывает подвисания, если сайт давно не открывался через админку.
Добавленный код отключает принудительные проверки обновлений, но:
- фоновые авто-проверки через Cron сохраняются
- ручная проверка остаётся доступной на странице Консоль → Обновления
Также удаляется логотип WordPress из админ-бара для более аккуратного интерфейса.
Код для вставки в functions.php
<?php
/**
* Disable forced checking for new WP, plugins, and theme versions in the admin panel,
* so that it doesn't slow down when you haven't visited for a long time and then visit...
* All checks will happen unnoticed through cron or when you visit the "Dashboard > Updates" page.
*
* @see https://wp-kama.ru/filecode/wp-includes/update.php
* @author Kama (https://wp-kama.ru)
* @version 1.1
*/
if( is_admin() ){
// disable update checks when entering the admin panel...
remove_action( 'admin_init', '_maybe_update_core' );
remove_action( 'admin_init', '_maybe_update_plugins' );
remove_action( 'admin_init', '_maybe_update_themes' );
// disable update checks when entering a special page in the admin panel...
remove_action( 'load-plugins.php', 'wp_update_plugins' );
remove_action( 'load-themes.php', 'wp_update_themes' );
// leave forced checking when entering the updates page...
//remove_action( 'load-update-core.php', 'wp_update_plugins' );
//remove_action( 'load-update-core.php', 'wp_update_themes' );
// leave forced checking when entering the "Update/Install Plugin" or "Update/Install Theme" page - it doesn't interfere...
//remove_action( 'load-update.php', 'wp_update_plugins' );
//remove_action( 'load-update.php', 'wp_update_themes' );
// don't touch the cron event, it will be used to check for updates - everything is fine here!
//remove_action( 'wp_version_check', 'wp_version_check' );
//remove_action( 'wp_update_plugins', 'wp_update_plugins' );
//remove_action( 'wp_update_themes', 'wp_update_themes' );
/**
* Disable the need to update the browser in the console - we always use top browsers!
* this check happens once a week...
* @see https://wp-kama.ru/function/wp_check_browser_version
*/
add_filter( 'pre_site_transient_browser_' . md5( $_SERVER['HTTP_USER_AGENT'] ?? '' ), '__return_empty_array' ); // phpcs:ignore WordPress.Security
}
/**
* Remove WordPress logo from admin bar
*/
function seomix_remove_admin_bar_wp_logo() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
}
add_action('wp_before_admin_bar_render', 'seomix_remove_admin_bar_wp_logo', 0);
Пояснение ко всем закомментированным строкам
Эти строки оставлены в коде специально — они позволяют гибко управлять обновлениями WordPress. При необходимости их можно раскомментировать и изменить поведение системы проверки обновлений.
//remove_action( 'load-update-core.php', 'wp_update_plugins' );
//remove_action( 'load-update-core.php', 'wp_update_themes' );
Если раскомментировать — отключается принудительная проверка обновлений на странице «Консоль → Обновления». Проверка будет происходить только в фоновом режиме через Cron.
//remove_action( 'load-update.php', 'wp_update_plugins' );
//remove_action( 'load-update.php', 'wp_update_themes' );
Если раскомментировать — WordPress перестанет проверять обновления на страницах установки и обновления плагинов и тем. Этот вариант обычно не нужен, поскольку такие проверки не создают нагрузки.
//remove_action( 'wp_version_check', 'wp_version_check' );
//remove_action( 'wp_update_plugins', 'wp_update_plugins' );
//remove_action( 'wp_update_themes', 'wp_update_themes' );
Если раскомментировать — полностью отключаются фоновые проверки обновлений, включая Cron. Обновления ядра, тем и плагинов перестанут поступать — это создаёт риск безопасности.
Результат применения
| Преимущество | Значение |
|---|---|
| Более быстрый вход в админ-панель | Нет задержек ожидания обновлений |
| Снижение нагрузки на сервер | Меньше внешних запросов |
| Обновления продолжают работать | Cron + ручная проверка |
| Аккуратный интерфейс | Убран WordPress-логотип |