Хук admin_init в WordPress: Начальные настройки для админки

Хук 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>';
}

Что делает этот код?

  1. Регистрация настройки: С помощью register_setting мы регистрируем новую настройку custom_welcome_message, которая будет храниться в базе данных.

  2. Добавление поля на страницу настроек: Используя add_settings_field, мы добавляем текстовое поле на страницу «Общие настройки» (General Settings).

  3. Функция обратного вызова: Функция 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. Он предназначен для выполнения определенных действий в административной панели, таких как регистрация настроек, загрузка скриптов и стилей, а также обработка данных из форм. Он вызывается после загрузки всех файлов админки, но перед отображением самой страницы админки, что делает его идеальным местом для инициализации и настройки.

    Почитаем еще?: