Как я могу использовать условное выражение для проверки наличия в канале каких-либо записей?

У меня есть тег Условные записи за пределами канала, который должен определить, имеет ли канал 1. Записи вообще, 2. Записи с истекшим сроком действия, 3. Закрытые записи: я пытался {if channel_short_name == "news"}Но каким-то образом это возвращает завернутый контент, независимо от того, закрыты ли записи или срок их действия истек. Причина, по которой у меня есть условие, находится за пределами тега канала, состоит в том, что я не хочу повторять тег h2.

{if there are a displayable entries in the "news" channel, display this whole package.}
   <h2>News</h2>
   <hr />
   {exp:channel:entries channel="news" limit="2"}
      <div class="entry panel">
         <h3>{title}</h3>
         {news_text}
         {if news_full OR news_bild}
            <div id="{entry_id}" class="toggleDiv">
               {news_full}
               {exp:ce_img:single src="{news_bild}" max_width="346" smart_scale="yes" alt="{name_orig}"}
            </div>
            <p><a class="show_hide" rel="#{entry_id}" href="#">Mehr…</a></p>
        {/if}
      </div>
   {/exp:channel:entries}
{/if}

Это подводит меня к другому вопросу:

Можно ли установить просроченные записи на "закрытые"?

2 ответа

Решение

Самый простой вариант - переместить разметку заголовка в условное выражение, которое отображается только с первой записью. Если нет результатов, то {exp:channel:entries} тег не будет генерировать вывод.

{exp:channel:entries channel="news" limit="2"}
    {if count == '1'}
        <h2>News</h2>
        <hr />
    {/if}
    <div class="entry panel">
        <h3>{title}</h3>
        {news_text}
        {if news_full OR news_bild}
            <div id="{entry_id}" class="toggleDiv">
                {news_full}
                {exp:ce_img:single src="{news_bild}" max_width="346" smart_scale="yes" alt="{name_orig}"}
            </div>
            <p><a class="show_hide" rel="#{entry_id}" href="#">Mehr…</a></p>
      {/if}
    </div>
{/exp:channel:entries}

Есть ли какая-то конкретная причина, почему вы хотите закрыть просроченные записи? Если вы не используете show_expired = 'yes' все просроченные записи будут вести себя так, как будто они все равно закрыты.

И если вам нужна условная разметка в конце цикла, вы можете сделать {if count == total_results},

Другие вопросы по тегам