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

get_theme_mod() WP 2.1.0

Получает значение указанной опции (настройки) текущей темы.

Если указанной опции темы не существует, то второй параметр $default перед возвращением будет пропущен через функцию php sprintf() так:

$default = sprintf( $default, get_template_directory_uri(), get_stylesheet_directory_uri() );

Можно использовать совместно с set_theme_mod(), чтобы получить настройки других опций темы. Получится альтернатива API настроек, только для темы.

Работает на основе: get_theme_mods()
✈ 1 раз = 0.000035с = очень быстро | 50000 раз = 0.58с = очень быстро PHP 7.0.5, WP 4.5
Хуки из функции:
Возвращает

Строку. Значение указанной опции темы.

Использование

get_theme_mod( $name, $default );
$name(строка) (обязательный)
Название настройки темы, которую нужно получить. Например: 'background_color'.
$default(логический/строка)
Строка, которую нужно вернуть, если не удалось найти указанную настройку темы. В строке можно указать плейсхолдеры. Например опции нет для %s %s вернет "опции нет для http://site.ru/wp-content/themes/theme_name http://site.ru/wp-content/themes/theme_name-child".
По умолчанию: false

Примеры

#1 Цвет фона из настроек темы

Этот пример показывает, как добавить верхнюю границу для блока footer с таким же цветом как и установленный в настройках цвет фона.

Код можно вставить в начало header.php

<style>
.footer {
	 border-top: solid 1px #<?php echo get_theme_mod('background_color'); ?>;
}
</style>

Код get_theme_mod: wp-includes/theme.php VER 4.9.8

<?php
function get_theme_mod( $name, $default = false ) {
	$mods = get_theme_mods();

	if ( isset( $mods[$name] ) ) {
		/**
		 * Filters the theme modification, or 'theme_mod', value.
		 *
		 * The dynamic portion of the hook name, `$name`, refers to
		 * the key name of the modification array. For example,
		 * 'header_textcolor', 'header_image', and so on depending
		 * on the theme options.
		 *
		 * @since 2.2.0
		 *
		 * @param string $current_mod The value of the current theme modification.
		 */
		return apply_filters( "theme_mod_{$name}", $mods[$name] );
	}

	if ( is_string( $default ) )
		$default = sprintf( $default, get_template_directory_uri(), get_stylesheet_directory_uri() );

	/** This filter is documented in wp-includes/theme.php */
	return apply_filters( "theme_mod_{$name}", $default );
}

Cвязанные функции

Из метки: theme_mods (настройки опции темы)

Еще из раздела: Другие функции темы

2 коммента
  • Лена

    Как сделать проверку использования настройки?

    Если поле в настройках заполнено, выводить эту настройку.
    Если не заполнено выводить произвольный текст.

    Спасибо

    Ответить1.4 год назад #
    • campusboy2947 cайт: www.youtube.com/c/wpplus
      $background_color = get_theme_mod('background_color');
      
      if($background_color){
      	// Цвет фона указан, делаем с ним что хотим
      }else{
      	// Цвет фона Не указан, предпринимаем другие действия, к примеру подставляем цвет по умолчанию
      }
      1
      Ответить1.4 год назад #
Здравствуйте, !     Войти . Зарегистрироваться