快速提问:如何将给定频道的所有条目输出为4个组,如下所示:
<div class="entry_group">
<div class="entry" id="1"><span>{title}</span></div>
<div class="entry" id="2"><span>{title}</span></div>
<div class="entry" id="3"><span>{title}</span></div>
<div class="entry" id="4"><span>{title}</span></div>
</div>
<div class="entry_group">
<div class="entry" id="5"><span>{title}</span></div>
<div class="entry" id="6"><span>{title}</span></div>
<div class="entry" id="7"><span>{title}</span></div>
<div class="entry" id="8"><span>{title}</span></div>
</div>
提前致谢!
答案 0 :(得分:3)
您可以尝试使用Modulo Operator plugin以任意数量的条目实现此目的。像这样:
{if count == "1"}
<div class="entry_group">
{/if}
{if '{exp:modulo dividend="{count}" divisor="4"}' == 0}
</div>
<div class="entry_group">
{/if}
<div class="entry" id="{count}"><span>{title}</span></div>
{if count == total_results}
</div>
{/if}
该插件仅适用于EE1,但将插件从EE1转换为EE2是轻而易举的。
答案 1 :(得分:1)
我在ExpressionEngine论坛上找到了另一个更简单的解决方案;虽然相当基础但我认为它应该很容易实现预期的目标:http://expressionengine.com/forums/viewthread/197240/#927740
它的主旨涉及使用{switch}变量来选择在每n组条目后插入关闭和打开标记对,具体取决于您在交换机中留下的空白点数。在您的情况下,示例将是这样的:
<div class="entry_group">
{exp:channel:entries}
<div class="entry" id="{switch='1|2|3|4'}"><span>{title}</span></div>
{switch='|||</div><div class="entry_group">'}
{exp:channel:entries}
</div>
div
和class=entry_group
之间的空格不应该导致任何问题,但如果确实如此,您可能希望使用CSS来控制容器的属性,而无需在其上放置类(例如.entry_list>div{...
和.entry_list>div .entry{...
答案 2 :(得分:0)
我确实找到了semi-solution on the Expression Engine forums,但它要求对条目总数进行限制。