Функция get_theme_mod()
используется для получения значения настроек (модификаций) текущей темы в WordPress. Эти настройки могут быть определены через кастомайзер темы и обычно включают такие параметры, как цвет фона, логотип, изображение хедера и другие элементы, которые можно настраивать для индивидуализации темы.
Если указанная настройка не существует, функция вернёт значение по умолчанию, если оно было передано в качестве второго параметра.
get_theme_mod( string $name, mixed $default_value = false ): mixed
Параметры
$name
(string) — Название настройки темы, которую нужно получить (обязательный параметр).$default_value
(mixed) — Значение по умолчанию, которое будет возвращено, если настройка не найдена. Если это строка, она будет обработана черезsprintf()
с параметрами URI родительской и дочерней тем. По умолчанию:false
.
Возвращаемое значение
- Разное — Возвращает значение настройки темы (тип зависит от конкретной настройки). Если настройка не найдена, возвращается значение по умолчанию (если указано).
1. Получение цвета фона из настроек темы
В этом примере демонстрируется, как можно получить цвет фона, установленный в настройках темы, и применить его для границы блока .footer
:
<style>
.footer {
border-top: solid 1px #<?php echo get_theme_mod( 'background_color' ); ?>;
}
</style>
Этот код выводит цвет, выбранный в настройках темы, как верхнюю границу для футера.
2. Использование значения по умолчанию
Иногда важно указать значение по умолчанию, если настройка ещё не была определена пользователем. В этом примере цвет границы задаётся по умолчанию как белый (#fff
), если значение настройки background_color
отсутствует:
<style>
.footer {
border-top: solid 1px #<?php echo get_theme_mod( 'background_color', '#fff' ); ?>;
}
</style>
Если пользователь не задал цвет фона через кастомайзер, граница будет белой.
3. Получение и безопасный вывод ссылки
Этот пример показывает, как можно безопасно получить и вывести ссылку из настроек темы:
<a href="<?php echo esc_url( get_theme_mod( 'footer_link', 'https://example.com' ) ); ?>">Посетите наш сайт</a>
Здесь, если ссылка не была задана, будет использована ссылка по умолчанию https://example.com
.
4. Применение пользовательского цвета фона к блоку поиска
Этот код изменяет цвет фона для блока .search-bar
в зависимости от настройки темы, при этом также используется безопасный вывод:
<style>
.search-bar {
background-color: <?php echo esc_html( get_theme_mod( 'search_background_color', '#000' ) ); ?>;
}
</style>
Если цвет не был установлен, используется чёрный (#000
).
Примечания
- Для сохранения пользовательских настроек используется функция
set_theme_mod()
, которая позволяет задавать и изменять значения модификаций. - Настройки темы можно получить через функцию
get_theme_mods()
, которая возвращает все модификации активной темы. - Если требуется получить настройки конкретного элемента (например, логотип или цвет текста в хедере), можно использовать функции, основанные на
get_theme_mod()
, такие какget_custom_logo()
,get_header_textcolor()
и другие.
Связанные функции
set_theme_mod()
— Устанавливает значение настройки темы.remove_theme_mod()
— Удаляет определённую настройку темы.get_theme_mods()
— Возвращает все модификации активной темы.
Заключение
Функция get_theme_mod()
является важным инструментом для получения пользовательских настроек темы. Она позволяет разработчикам тем и плагинов легко интегрировать настройки, созданные через кастомайзер, и использовать их для настройки внешнего вида и функциональности сайта.