switch_theme хук-подіяWP 1.5.0

Спрацьовує при зміні теми. Використовується для деактивації теми.

Спрацьовує після того, як тема була переключена, але до наступного запиту – редиректа. При активації теми відбувається редирект на ту саму сторінку.

Під час цієї події доступні лише функції старої теми, з якої ми перемикаємося. Якщо потрібна функція нової теми, використовуйте подію after_switch_theme .

Цей хук слід використовувати, коли потрібно зробити щось при деактивації теми.

Особливості роботи перемикання і як це працює крок за кроком дивіться в описі after_switch_theme .

Використання

add_action( 'switch_theme', 'wp_kama_switch_theme_action', 10, 3);

/**
 * Function for `switch_theme` action-hook.
 *
 * @param string $new_name Name of the new theme.
 * @param WP_Theme $new_theme WP_Theme instance of the new theme.
 * @param WP_Theme $old_theme WP_Theme instance of the old theme.
 *
 * @return void
 */
function wp_kama_switch_theme_action( $new_name, $new_theme, $old_theme ){

	// action...
}
$new_name
(рядок)
Назва нової теми
$new_theme
(WP_Theme)
WP_Theme об’єкт нової теми. wp_get_theme
()
$old_theme
(WP_Theme)
WP_Theme об’єкт старої теми.

Приклади

0

#1 Видалення опцій теми під час її деактивації

add_action('switch_theme', 'mytheme_del_options');
function mytheme_del_options( $old_name ) {
	delete_option('mytheme_options');
}
0

#2 Видалення опцій при деактивації теми та додавання при активації

// видаляємо налаштування теми під час деактивації
add_action('switch_theme', 'deactivate_my_theme');
function deactivate_my_theme( $old_name ){
	// Доступні функції старої теми, але не нової

	delete_option('mytheme_options');
}

// додаємо налаштування теми під час активації
add_action('after_switch_theme', 'activate_my_theme');
function activate_my_theme( $new_name ){
	// Доступні функції нової теми, але не старої

	$opt = array('opt1'=>'val1', 'opt2'=>'val2');

	add_option('mytheme_options', $opt);
}

список змін

З версії 1.5.0Введено.
З версії 4.5.0Встановлено $old_theme parameter .

Де викликається хук

switch_theme

Де використовується хук у WordPress

wp-includes/default-filters.php 348

add_action( 'switch_theme', array( 'WP_Theme_JSON_Resolver', 'clean_cached_data' ) );

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *