set_theme_mod() WP 2.1.0

Створює або оновлює спеціальні параметри поточної теми.

Під “спеціальні” маються на увазі опції на кшталт ” background-color “, які потім можна отримати за допомогою get_theme_mod() .

Функції типу *_theme_mod – це аналог дочірніми темами . Для гнучкості у функціях є фільтри.

Усі такі спец. опції теми фізично розміщуються у одній опції таблиці wp_optionstheme_mods_(theme) , як масиву.

Наступний код розмістить в опціях масив: array(‘aaa’=>123, ‘bbb’=>456) .

set_theme_mod( 'aaa', 123);
set_theme_mod ( 'bbb', 456);

Всі функції theme_mod – це обгортки для get_option() і тому вони повільніші, тому що перш ніж використовувати get_option() функція отримує назву теми створює з нього назву опції ” theme_mods_$theme “, потім застосовує фільтр до зазначеної опції.

Втім, всі ці операції знижують швидкість не значно.

Щоб видалити опцію теми, використовуйте remove_theme_mod() .

Працює на основі:
get_theme_mods() ,
update_option()
1 раз – 0.000983 сек
(повільно) | 50000 разів – 4.90 сек
(швидко)

Хуки з функції

Повертає

true|false. Залежно від того, чи було оновлено значення опції. див. update_option() . Значення, що повертається додано в WP 5.6.

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

set_theme_mod($name, $value);
$name
(рядок) (обов’язковий)
Назва спеціальної опції теми.
$value
(змішаний) (обов’язковий)
Значення опції.

Приклади

0

#1 Встановимо опцію теми

Встановимо та отримай спеціальне налаштування теми теми:

set_theme_mod('aaa', 123);

// потім де потрібно отримуємо цю опцію так:
get_theme_mod('aaa'); // > 123

список змін

З версії 2.1.0Введено.
З версії 5.6.0A return value був added.

Код set_theme_mod() WP 6.0.2

function set_theme_mod( $name, $value ) {
	$mods = get_theme_mods();
	$old_value = isset($mods[$name])? $mods[$name]: false;

	/**
	 * Filters theme modification, або 'theme_mod', value on save.
	 *
	 * The dynamic portion of hook name, `$name`, refers to the key name
	 * of the modification array. Для прикладу, 'header_textcolor', 'header_image',
	 * and so on depending the theme options.
	 *
	 * @ Since 3.9.0
	 *
	 * @param mixed $value The new value theme modification.
	 * @param mixed $old_value Сучасна величина теми зміни.
	 */
	$mods[ $name ] = apply_filters( "pre_set_theme_mod_{$name}", $value, $old_value );

	$ theme = get_option( 'stylesheet' );

	return update_option( "theme_mods_$theme", $mods);
}

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

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