Хук after_setup_theme
в WordPress используется для выполнения начальной настройки темы, регистрации поддерживаемых функций и инициализации различных возможностей. Он запускается после того, как тема была загружена, но до начала обработки других хуков и плагинов, таких как init
. Это позволяет зарегистрировать функциональные возможности темы, такие как поддержка миниатюр, навигационных меню и другие параметры.
do_action( ‘after_setup_theme’ )
Параметры хука after_setup_theme
Этот хук не принимает параметров, однако он используется для инициализации и настройки различных функций, которые будут активированы после загрузки темы.
Когда использовать хук after_setup_theme
Этот хук применяется, чтобы добавить поддержку различных возможностей WordPress для темы, например:
- Поддержка миниатюр для постов.
- Поддержка форматов постов.
- Регистрация меню для навигации.
- Поддержка настроек фоновых изображений и других функциональных особенностей.
Пример 1: Настройка Базовых Параметров Темы
add_action( 'after_setup_theme', 'my_custom_theme_setup' );
function my_custom_theme_setup() {
// Подключаем файл перевода
load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' );
// Добавляем поддержку миниатюр для записей
add_theme_support( 'post-thumbnails' );
// Добавляем поддержку форматов постов
add_theme_support( 'post-formats', array( 'image', 'video', 'quote' ) );
// Регистрируем навигационные меню
register_nav_menus( array(
'primary' => __( 'Main Menu', 'mytheme' ),
'footer' => __( 'Footer Menu', 'mytheme' ),
) );
// Добавляем поддержку HTML5 для формы поиска и комментариев
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list' ) );
}
В этом примере хук after_setup_theme
используется для подключения файлов перевода, добавления поддержки миниатюр и форматов постов, а также для регистрации меню.
Пример 2: Изменение Цветовой Палитры Редактора
add_action( 'after_setup_theme', 'mytheme_editor_color_palette' );
function mytheme_editor_color_palette() {
add_theme_support( 'editor-color-palette', array(
array(
'name' => __( 'Ocean Blue', 'mytheme' ),
'slug' => 'ocean-blue',
'color' => '#0077cc',
),
array(
'name' => __( 'Coral Red', 'mytheme' ),
'slug' => 'coral-red',
'color' => '#ff5733',
),
array(
'name' => __( 'Sunset Yellow', 'mytheme' ),
'slug' => 'sunset-yellow',
'color' => '#ffcc00',
),
) );
}
Этот код изменяет стандартную цветовую палитру редактора в WordPress, добавляя три новых цвета.
Пример 3: Подключение Стилей для Визуального Редактора
add_action( 'after_setup_theme', 'mytheme_add_editor_styles' );
function mytheme_add_editor_styles() {
add_editor_style( 'assets/css/editor-style.css' );
}
В этом примере добавляется стиль для визуального редактора, который будет использоваться в административной панели при редактировании контента.
Пример 4: Настройка Произвольного Заголовка и Фона
add_action( 'after_setup_theme', 'mytheme_custom_header' );
function mytheme_custom_header() {
add_theme_support( 'custom-header', array(
'width' => 1200,
'height' => 400,
'flex-width' => true,
'flex-height' => true,
'default-image' => get_template_directory_uri() . '/images/default-header.jpg',
) );
add_theme_support( 'custom-background', array(
'default-color' => 'ffffff',
) );
}
Здесь регистрируется поддержка для настройки произвольного фона и заголовка, что позволяет пользователям изменять эти элементы через настройки темы.
Полезные Советы
- Порядок Вызова. Хук
after_setup_theme
вызывается рано, поэтому нельзя использовать функции, которые зависят от данных пользователя или активных плагинов, таких как проверка, авторизован ли пользователь. - Использование
add_theme_support
. Большинство функций, таких как поддержка миниатюр, навигационных меню или редакторских стилей, добавляются именно черезadd_theme_support
внутри этого хука. - Проверка Функций. Всегда проверяйте, что нужные функции (например,
add_theme_support
) не были ранее определены, чтобы избежать ошибок при многократном подключении.
Заключение
Хук after_setup_theme
в WordPress является важным инструментом для начальной настройки темы. С помощью этого хука можно зарегистрировать базовые возможности темы, такие как поддержка миниатюр, меню и переводы, а также выполнить другие важные инициализационные действия.