4

我有一个 Channel 条目标记之外的条件标记,它应该确定 Channel 是否有 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…&lt;/a></p>
        {/if}
      </div>
   {/exp:channel:entries}
{/if}

这让我想到另一个问题:

是否可以将过期条目设置为“关闭”?

4

2 回答 2

8

最简单的选择是将标题标记移动到仅与第一个条目一起显示的条件中。如果没有结果,则{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…&lt;/a></p>
      {/if}
    </div>
{/exp:channel:entries}

您是否有任何特殊原因要关闭过期条目?除非您使用show_expired = 'yes'所有过期的条目,否则它们的行为就像它们已经关闭一样。

于 2012-11-02T13:46:08.660 回答
2

如果您在循环结束时也需要条件标记,您可以执行{if count == total_results}.

于 2012-11-02T23:07:22.887 回答