after_setup_theme
Вызывается каждый раз при загрузке страницы, сразу после того, как тема инициализирована. Обычно используется для того, чтобы установить базовые возможности темы: см. add_theme_support().
Это один из первых хуков, срабатывает прямо перед инициализацией WordPress, перед хуком init
.
В отличии от хука init, на момент срабатывания этого хука, wordpress еще не определил авторизован пользователь или нет.
Использование
add_action( 'after_setup_theme', 'wp_kama_after_setup_theme_action' ); /** * Function for `after_setup_theme` action-hook. * * @return void */ function wp_kama_after_setup_theme_action(){ // action... }
Примеры
#1 Пример использования after_setup_theme из базовой темы Twenty Twelve
Этот пример показывает как использовать хук after_setup_theme, чтобы зарегистрировать (добавить) новые возможности для темы, такие как: поддержка миниатюр, форматов постов, картинки для шапки и т.д.
/** Укажем WordPress запустить функцию twentytwelve_setup() в момент действия хука 'after_setup_theme' */ add_action( 'after_setup_theme', 'twentytwelve_setup' ); // Установим параметры темы по умолчанию // и добавим поддержку дополнительных возможностей WordPress function twentytwelve_setup() { // Возможность указывать файл стилей для визуального редактора. Поместите editor-style.css в папку темы. add_editor_style(); // Поддержка форматов постов. add_theme_support( 'post-formats', array( 'aside', 'gallery' ) ); // Поддержка миниатюр записи add_theme_support( 'post-thumbnails' ); // Добавим ссылки на RSS постов и комметариев в head часть add_theme_support( 'automatic-feed-links' ); // Сделаем тему доступной для перевода // Файлы перевода должны находиться в каталоге /languages/ load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' ); $locale = get_locale(); $locale_file = get_template_directory() . "/languages/$locale.php"; if ( is_readable( $locale_file ) ) require_once( $locale_file ); // Поддержка навигационного меню wp_nav_menu() register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'twentytwelve' ), 'Secondary' => __( 'Secondary Navigation', 'twentytwelve' ), ) ); // Поддержка установки произвольного заднего фона add_custom_background(); // Устанавливаем и изменяем параметры в HEADER части темы if ( ! defined( 'HEADER_TEXTCOLOR' ) ) define( 'HEADER_TEXTCOLOR', '' ); // Указываем картинку для шапки, указывается только ссылка на картинку. %s - будет заменено на УРЛ - путь до каталога темы. if ( ! defined( 'HEADER_IMAGE' ) ) define( 'HEADER_IMAGE', '%s/images/headers/path.jpg' ); // Высота и ширина произвольного заголовка. Чтобы изменить эти значения, можно использовать хуки темы: twentytwelve_header_image_width и twentytwelve_header_image_height. define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentytwelve_header_image_width', 940 ) ); define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentytwelve_header_image_height', 198 ) ); // Будем использовать миниатюру поста для картинки в шапке для страниц и записей. // Нужные нам размеры: ширина 940 пикселей и высота 198. // Большие картинки будут уменьшены автоматически, // а маленькие останутся без изменения. set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true ); // Нам не нужен текст внутри картинки в шапке. if ( ! defined( 'NO_HEADER_TEXT' ) ) define( 'NO_HEADER_TEXT', true ); // Добавим возможность изменять стили картинки в шапке из админ-панели // add_custom_image_header( '', 'twentytwelve_admin_header_style' ); }
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
В файле: /wp-settings.php
after_setup_theme
wp-settings.php 682
do_action( 'after_setup_theme' );
Где используется хук в WordPress
wp-includes/class-wp-customize-manager.php 575
add_action( 'after_setup_theme', array( $this, 'after_setup_theme' ) );
wp-includes/class-wp-customize-manager.php 597
add_action( 'after_setup_theme', array( $this, 'establish_loaded_changeset' ), 5 );
wp-includes/class-wp-customize-manager.php 605
add_action( 'after_setup_theme', array( $this, 'import_theme_starter_content' ), 100 );
wp-includes/default-filters.php 528
add_action( 'after_setup_theme', '_add_default_theme_supports', 1 );
wp-includes/default-filters.php 653
add_action( 'after_setup_theme', 'wp_setup_widgets_block_editor', 1 );
wp-includes/default-filters.php 725
add_action( 'after_setup_theme', 'wp_enable_block_templates', 1 );
wp-settings.php 408
add_action( 'after_setup_theme', array( wp_script_modules(), 'add_hooks' ) );
wp-settings.php 409
add_action( 'after_setup_theme', array( wp_interactivity(), 'add_hooks' ) );