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 720
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 549
add_action( 'after_setup_theme', '_add_default_theme_supports', 1 );
wp-includes/default-filters.php 680
add_action( 'after_setup_theme', 'wp_setup_widgets_block_editor', 1 );
wp-includes/default-filters.php 753
add_action( 'after_setup_theme', 'wp_enable_block_templates', 1 );
wp-settings.php 428
add_action( 'after_setup_theme', array( wp_script_modules(), 'add_hooks' ) );
wp-settings.php 429
add_action( 'after_setup_theme', array( wp_interactivity(), 'add_hooks' ) );