Иногда после обновления WordPress появляется необходимость уведомить администратора или редакторов сайта о проведённом обновлении, либо о выполнении дополнительных действий, например, очистке кэша, обновлении плагинов или проверки совместимости. В этой статье мы подробно разберём, как добавить кастомное уведомление в админ-панель WordPress, которое будет показываться один раз после обновления ядра.
Почему важно показывать уведомления после обновления WordPress
Обновления WordPress — это залог безопасности и стабильности сайта. Однако после обновления часто требуется выполнить дополнительные настройки или проверку совместимости. Автоматическое уведомление поможет не забыть эти шаги и своевременно их выполнить.
Кроме того, такое уведомление может служить напоминанием об использовании новых функций версии или о наличии важных изменений в конфигурации.
Реализация уведомления с помощью собственного кода позволяет избежать лишних плагинов и контролировать логику показа полностью самостоятельно.
Как WordPress хранит информацию о версии
Текущая версия WordPress хранится в базе данных в опции db_version (цифровое значение для внутреннего использования) и version (строка с номером версии). Также в константе get_bloginfo('version') возвращается текущая версия.
Мы можем использовать сохранение версии в опции и сравнивать её с текущей при загрузке админ-панели, чтобы определить, было ли обновление.
Пример кода: создание уведомления после обновления
Ниже приведён пример кода, который добавляет уведомление в админку WordPress, если версия ядра изменилась с момента последнего посещения.
function wpstudy_check_update_notification() {
$current_version = get_bloginfo('version');
$saved_version = get_option('wpstudy_last_wp_version');
if ($saved_version !== $current_version) {
add_action('admin_notices', 'wpstudy_show_update_notice');
// Обновляем сохранённую версию
update_option('wpstudy_last_wp_version', $current_version);
}
}
function wpstudy_show_update_notice() {
echo '<div class="notice notice-success is-dismissible">';
echo '<p>WordPress успешно обновлён до версии ' . esc_html(get_bloginfo('version')) . '. Не забудьте проверить совместимость плагинов и темы.</p>';
echo '</div>';
}
add_action('admin_init', 'wpstudy_check_update_notification');Этот код проверяет, совпадает ли сохранённая версия с текущей. Если нет, значит произошло обновление, и выводит уведомление. После показа уведомления версия обновляется в базе, чтобы сообщение не показывалось повторно.
Расширение: добавление кнопки для запуска дополнительных действий
Иногда полезно не просто вывести уведомление, но и предложить выполнить дополнительные действия, например, очистить кэш или запустить миграцию.
Добавим кнопку с обработчиком через AJAX для запуска кастомной функции.
Добавление кнопки в уведомление
function wpstudy_show_update_notice() {
$nonce = wp_create_nonce('wpstudy_update_action');
$ajax_url = admin_url('admin-ajax.php');
echo '<div class="notice notice-success is-dismissible">';
echo '<p>WordPress успешно обновлён до версии ' . esc_html(get_bloginfo('version')) . '. </p>';
echo '<p><button id="wpstudy-clear-cache" class="button button-primary">Очистить кэш</button></p>';
echo '</div>';
echo "<script>
jQuery(document).ready(function($) {
$('#wpstudy-clear-cache').on('click', function() {
$.post('{$ajax_url}', { action: 'wpstudy_clear_cache', nonce: '{$nonce}' }, function(response) {
alert(response.data.message);
});
});
});
</script>";
}
add_action('wp_ajax_wpstudy_clear_cache', 'wpstudy_clear_cache_callback');
function wpstudy_clear_cache_callback() {
check_ajax_referer('wpstudy_update_action', 'nonce');
// Пример очистки кэша
if (function_exists('wp_cache_clear_cache')) {
wp_cache_clear_cache();
wp_send_json_success(['message' => 'Кэш очищен успешно']);
} else {
wp_send_json_error(['message' => 'Функция очистки кэша не найдена']);
}
}В этом примере при клике на кнопку выполняется AJAX-запрос, который пытается вызвать функцию очистки кэша. При успешном выполнении пользователю выводится сообщение.
Совместимость с плагинами WPGPT и Clearfy Pro
Если на вашем сайте установлен плагин WPGPT, вы можете дополнительно интегрировать уведомление с ИИ-ассистентом для автоматического анализа возможных проблем после обновления.
Плагин Clearfy Pro поможет автоматически исправлять распространённые проблемы совместимости после обновлений, а уведомление можно использовать для информирования об этих исправлениях.
Как улучшить уведомление и избежать лишних показов
Чтобы уведомление не раздражало пользователей, можно ограничить показ только администраторам или определённым ролям, например, редакторам.
function wpstudy_check_update_notification() {
if (!current_user_can('manage_options')) {
return; // Показываем только администраторам
}
$current_version = get_bloginfo('version');
$saved_version = get_option('wpstudy_last_wp_version');
if ($saved_version !== $current_version) {
add_action('admin_notices', 'wpstudy_show_update_notice');
update_option('wpstudy_last_wp_version', $current_version);
}
}Также можно хранить дату показа уведомления и не показывать его слишком часто, если пользователь не закрыл сообщение.
Выводы и рекомендации
Добавление уведомления после обновления WordPress — простое, но полезное улучшение для любого сайта. Оно поможет не пропустить важные действия после обновления, повысит безопасность и стабильность ресурса.
Приведённый пример кода легко расширяется и интегрируется с другими плагинами и инструментами, такими как WPGPT и Clearfy Pro, доступными на wpshop.ru.