get_theme_mod

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

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

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


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

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

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

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

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

<?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 );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *