Задайте настраиваемую переменную шаблона в expressionengine

Мне нужно вывести категорию для записи несколько раз в шаблон записи.

Итак, я хочу получить результат из следующего и назначить переменной, чтобы я мог повторно использовать внутри шаблона:

{exp:channel:entries channel="product" limit="1" status="open"}
    {categories}{category_name}{/categories}
{/exp:channel:entries}"

Как это сделать?

Ответ 1

Теперь вы можете позволить шаблону разрешить PHP, тогда вы можете написать что-то вроде этого:

{exp:channel:entries channel="product" limit="1" status="open"}
    {categories}
        <?php $category = '{category_name}'; ?>
    {/categories}
{/exp:channel:entries}

Затем у вас есть {category_name}, хранящийся в категории "php-variable". Позже вы можете использовать его так, как хотите, например, эхом:

<?php echo $category; ?>

Вы даже можете сравнить его с другими тегами EE:

{exp:channel:entries channel="product" limit="1" status="open"}
    {if <?php $echo($category) ?> == title}
        This title have got the same value as the category!
    {/if}
{/exp:channel:entries}

Ответ 2

Croxton Stash: http://devot-ee.com/add-ons/stash делает почти то же самое, что и NSM Transplant (упомянутый Дереком, выше), и является бесплатным. Один из этих аддонов определенно будет самым простым способом сделать то, что вы пытаетесь сделать.

Ответ 3

EE не имеет встроенного способа сохранения данных из цикла тегов и повторного использования его в другом месте шаблона вне цикла тега.

Одним из решений было бы использовать NSM Transplant, чтобы сделать именно то, что вы хотите сделать.

Другим было бы обернуть всю вашу страницу входа в тэг channel:entries, чтобы вы могли просто использовать цикл categories везде, где вам это нужно, а затем использовать вставки для всего, что не может быть вложено внутри channel:entries.