WordPress как на ладони

after_setup_themeхук-событиеWP 3.0.0

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

#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 673
do_action( 'after_setup_theme' );

Где используется хук в WordPress

wp-includes/class-wp-customize-manager.php 570
add_action( 'after_setup_theme', array( $this, 'after_setup_theme' ) );
wp-includes/class-wp-customize-manager.php 592
add_action( 'after_setup_theme', array( $this, 'establish_loaded_changeset' ), 5 );
wp-includes/class-wp-customize-manager.php 600
add_action( 'after_setup_theme', array( $this, 'import_theme_starter_content' ), 100 );
wp-includes/default-filters.php 524
add_action( 'after_setup_theme', '_add_default_theme_supports', 1 );
wp-includes/default-filters.php 650
add_action( 'after_setup_theme', 'wp_setup_widgets_block_editor', 1 );
wp-includes/default-filters.php 722
add_action( 'after_setup_theme', 'wp_enable_block_templates', 1 );
wp-settings.php 399
add_action( 'after_setup_theme', array( wp_script_modules(), 'add_hooks' ) );
wp-settings.php 400
add_action( 'after_setup_theme', array( wp_interactivity(), 'add_hooks' ) );
26 комментариев
Полезные 1 Все
    Войти