我正在使用ExpressionEngine 2.2.1并且我试图根据类别显示我的页面的一部分。如果没有条目选择某个类别,我想隐藏整个部分。例如,我有一个网站列出了有关最终会有竞争对手的事件的信息。我希望在选择竞争对手之前存在该页面,然后在选择后将竞争者添加到适当的类别。该部分将有一个标题,上面写着“竞争对手”。如果还没有竞争者分配到该类别,我不仅不希望它为竞争对手显示空间,而且我还想隐藏标题。如何根据类别创建条件?这里根据我的研究(http://expressionengine.com/archived_forums/viewthread/136676/#759900)我当前代码的适用部分无效:
{if “{categories show_group=“4”}{category_name}{/categories}” != “”}
{categories}
<h2>COMPETITORS</h2>
{exp:channel:entries channel="competitor_profiles_en" category_url_title="london_2d_en" orderby="date" limit="8" }
<div class="xx">{competitor_image}</div>
{/exp:channel:entries}
{/categories}
{if:else}
show nothing
{/if}
答案 0 :(得分:1)
难道你不能这样做吗?
{exp:channel:entries channel="competitor_profiles_en" category_url_title="london_2d_en" orderby="date" limit="8"}
{if count == "1"}<h2>COMPETITORS</h2>{/if}
<div class="xx">{competitor_image}</div>
{/exp:channel:entries}
或者,如果您在循环浏览所有类别时执行此操作:
{exp:channel:categories channel="competitor_profiles_en" show_empty="no"}
<h1>{category_name}</h1>
{category_description}
<h2>COMPETITORS</h2>
{exp:channel:entries channel="competitor_profiles_en" category="{category_id}" orderby="date" limit="8"}
<div class="xx">{competitor_image}</div>
{/exp:channel:entries}
{/exp:channel:categories}
请注意,如果您有多个类别,则此嵌套标记可能会导致相当大的性能损失。
答案 1 :(得分:1)
我通过将parse="inward"
添加到channel:entries
标记来实现此目的:
{exp:channel:entries channel="news" parse="inward"}
然后是以下if语句:
{if '{categories show="135"}{category_name}{/categories}' != ""}
显然会替换上面的频道和类别ID。所以完整的代码:
{exp:channel:entries channel="news" parse="inward"}
{if '{categories show="135"}{category_name}{/categories}' != ""}
{!-- do something here --}
{/if}
{/exp:channel:entries}
答案 2 :(得分:0)
这是完整的代码吗?
{categories} {/ categories}循环对仅在频道中可用:条目标记对。
我并没有完全遵循你想要做的事情,但是如果根据标签的使用没有结果,你可以在频道中使用条件:条目循环:
这可能用于在类别模式下加载模板时创建所需的视图,但没有为该类别分配条目。