Хук admin_init
в WordPress запускается после загрузки всех админских файлов, но до отображения страницы в административной панели. Это идеальное место для выполнения различных настроек и инициализаций, таких как регистрация пользовательских постов, добавление стилей или скриптов, настройка опций и другие административные задачи.
Как это работает
Когда пользователь заходит в админку WordPress, хук admin_init
выполняется, и вы можете использовать его для выполнения функций, которые должны быть доступны только в админской части.
Пример использования
Рассмотрим пример, в котором мы добавим пользовательскую настройку в панель администратора для изменения приветственного сообщения в админке.
Шаг 1: Добавление настроек
Сначала добавим код для регистрации настройки в файл functions.php
вашей темы или плагина:
// Хук для инициализации настроек
add_action( 'admin_init', 'custom_admin_settings' );
function custom_admin_settings() {
// Регистрация настройки
register_setting( 'general', 'custom_welcome_message' );
// Добавление поля настройки на страницу Общие настройки
add_settings_field(
'custom_welcome_message', // ID поля
'Приветственное сообщение', // Заголовок
'custom_welcome_message_callback', // Функция обратного вызова для отображения поля
'general' // Страница, на которой будет отображаться поле
);
}
// Функция обратного вызова для отображения поля
function custom_welcome_message_callback() {
// Получаем текущее значение настройки
$value = get_option( 'custom_welcome_message', '' );
echo '<textarea id="custom_welcome_message" name="custom_welcome_message" rows="5" cols="50">' . esc_textarea( $value ) . '</textarea>';
}
Что делает этот код?
Регистрация настройки: С помощью
register_setting
мы регистрируем новую настройкуcustom_welcome_message
, которая будет храниться в базе данных.Добавление поля на страницу настроек: Используя
add_settings_field
, мы добавляем текстовое поле на страницу «Общие настройки» (General Settings).Функция обратного вызова: Функция
custom_welcome_message_callback
отвечает за отображение текстового поля и подгружает текущее значение настройки из базы данных.
Шаг 2: Отображение сообщения
Теперь, когда у нас есть настройка, давайте выведем это сообщение на главной странице админки. Для этого добавим еще один хук.
// Хук для отображения приветственного сообщения в админке
add_action( 'admin_notices', 'display_custom_welcome_message' );
function display_custom_welcome_message() {
$message = get_option( 'custom_welcome_message', '' );
if ( ! empty( $message ) ) {
echo '<div class="notice notice-success is-dismissible">
<p>' . esc_html( $message ) . '</p>
</div>';
}
}
Как это работает
Хук admin_notices
: Мы используем хук admin_notices
, чтобы вывести сообщение в админской панели.Проверка и вывод: В функции display_custom_welcome_message
мы получаем значение настройки и, если оно не пустое, выводим его в виде уведомления.
хук admin_init
является экшеном в WordPress. Он предназначен для выполнения определенных действий в административной панели, таких как регистрация настроек, загрузка скриптов и стилей, а также обработка данных из форм. Он вызывается после загрузки всех файлов админки, но перед отображением самой страницы админки, что делает его идеальным местом для инициализации и настройки.