первое для тем, второе для плагинов.
значение — «указанное»:
.footer {
border-top: solid 1px #<?php echo get_theme_mod( 'background_color' ); ?>;
}
Модератор
Yuri
(@yube)
Retrieves a modification setting for the current theme. Along with set_theme_mod() this function can sometimes offer theme developers a simpler alternative to the Settings API when there is a need to handle basic theme-specific settings.
https://codex.wordpress.org/Function_Reference/get_theme_mod
Retrieves a modification setting for the current theme. Along with set_theme_mod() this function can sometimes offer theme developers a simpler alternative to the Settings API when there is a need to handle basic theme-specific settings.
https://codex.wordpress.org/Function_Reference/get_theme_mod
в этой информации ничего не говорится про то, чем отличается get_theme_mod от get_option!
В чём заключается альтернатива?
Когда нужно использовать get_theme_mod, а когда нужно использовать get_option ?
Модератор
Yuri
(@yube)
Сказано: setting for the current theme. По-моему, вполне достаточно.
Но никто не заставляет пользоваться. Однако, если хранить настройки темы в options, то велика вероятность коллизии.
Сказано: setting for the current theme. По-моему, вполне достаточно.
а если установлена только одна тема, то add_option(‘option_for_theme’, ‘some’) сделает настройку только для текущей темы также! Как-то не совсем достаточно.
если интересно
интересно, но английский средний.
Вообщем я попробую опишу, как я это понимаю, и если вас не затруднит, скажите плиз, что из этого будет правда. Я просил всего лишь написать пару строк, когда применять get_theme_mod, а когда get_option.
Я так понимаю, что если использовать set_theme_mod (при установке опции) и get_theme_mod (при считывании этой опции), тогда можно в одну ячейку таблицы options записать сразу несколько значений для одной темы. И потом при извлечении с помощью get_theme_mod или get_theme_mods, эти опции возвращаются в виде массива. Скажите, так ли это?
-
Ответ изменён 7 лет, 1 месяц назад пользователем testcode.
Подскажите, чем отличается get_theme_mod от get_option ?
Функция get_option()
предназначена для плагинов и получает значения из таблицы wp_options
, ранее добавленные туда с помощью add_option()
или update_option()
, либо созданные при установке движка.
Функция get_theme_mod()
предназначена для получения настроек темы из массива theme_mods_{ярлык_темы}
(физически он хранится в той же таблице wp_options
). Новые значения добавляются в этот массив с помощью функции set_theme_mod()
.
Теоретически никто не запрещает для настроек темы тоже использовать механизм опций (или даже оба механизма одновременно), весь вопрос в том, стоит ли захламлять базу.
Темам, претендующим на размещение в каталоге WordPress.org, на текущий момент рекомендуется не сохранять свои настройки отдельно, а использовать API интерфейса настройки.
Или если опция выбирается с помощью get_theme_mod, то она должна быть создана обязательно с помощью set_theme_mod?
Верно, однако у функции есть ещё второй аргумент — $default
, значение которого будет использовано, если в базе данных значение отсутствует.
Дополнительная информация: