• Решено testcode

    (@trademeta)


    Здравствуйте. Подскажите, чем отличается get_theme_mod от get_option ?
    В каких случаях нужно применять get_theme_mod ?
    Нашёл только краткое описание:

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

    Про какое значение указанной опции имеется ввиду?
    Как и где эта опция устанавливается?
    Я так понял устанавливается с помощью set_theme_mod, тогда чем set_theme_mod отличается от update_option ?

    • Тема изменена 7 лет, 2 месяца назад пользователем testcode.
    • Тема изменена 7 лет, 2 месяца назад пользователем testcode.
Просмотр 9 ответов — с 1 по 9 (всего 9)
  • первое для тем, второе для плагинов.
    значение — «указанное»:

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

    значение — «указанное»:

    этот пример я видел. А точнее можно? Откуда берётся значение «background_color» ?
    Эта опция сначала создаётся с помощью add_option или update_option?
    add_option('background_color', '#000');
    Как-то так? А потом выбирается с помощью get_theme_mod ?
    Или если опция выбирается с помощью get_theme_mod, то она должна быть создана обязательно с помощью set_theme_mod?

    • Ответ изменён 7 лет, 2 месяца назад пользователем testcode.
    • Ответ изменён 7 лет, 2 месяца назад пользователем testcode.
    • Ответ изменён 7 лет, 2 месяца назад пользователем testcode.
    • Ответ изменён 7 лет, 2 месяца назад пользователем testcode.
    Модератор 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.
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Подскажите, чем отличается 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, значение которого будет использовано, если в базе данных значение отсутствует.

    Дополнительная информация:

    благодарю

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Get_theme_mod» закрыта для новых ответов.