3

在 ExpressioneEngine 中,我正在创建一个带有返回一些奇怪行为的条件的列表。下面的代码是更大集合的一部分:

<li><h4>DERMATOLOGY</h4>
  <ul>
    {exp:channel:entries channel="specialist" dynamic="no" orderby="sp_order" sort="asc"}
      {if sp_specialty == "sp_dermatology"}
        <li>
          <a href="{title_permalink='meet'}"><img src="{sp_headshot}" /></a>
          <a href="{title_permalink='meet'}"><p>{title}</p></a>
        </li>                           
      {/if}
    {/exp:channel:entries}
  </ul>
</li>
<li><h4>EMERGENCY AND CRITICAL CARE</h4>
  <ul>
    {exp:channel:entries channel="specialist" dynamic="no" orderby="sp_order" sort="asc"}
      {if sp_specialty == "sp_emergency"}
        <li class="{switch='one|two'}">
          <a href="{title_permalink='meet'}"><img src="{sp_headshot}" /></a>
          <a href="{title_permalink='meet'}"><p>{title}</p></a>
        </li>                           
      {/if}
    {/exp:channel:entries}
  </ul>
</li>

在紧急和重症监护的情况下,会发生什么情况,我在该条目下有 5 个条目,类返回如下:二、一、一、一、二。关于获得我需要的行为的任何建议?

4

1 回答 1

6

我明白你的意思了。switch 变量将其逻辑应用于条目循环返回的所有条目 - 这就是您在呈现的页面中看到奇数编号的原因 - 因为它将它们应用于循环返回的条目,然后您将条件应用到这样做你的分组。您可以使用搜索参数为您做一些事情,只返回您在每个循环中寻找的条目。像这样:

<li><h4>DERMATOLOGY</h4>
    <ul>
    {exp:channel:entries channel="specialist" search:sp_specialty="=sp_dermatology"  dynamic="no" orderby="sp_order" sort="asc"}
    <li>
      <a href="{title_permalink='meet'}"><img src="{sp_headshot}" /></a>
      <a href="{title_permalink='meet'}"><p>{title}</p></a>
    </li>                           
{/exp:channel:entries}
</ul>
</li>
<li><h4>EMERGENCY AND CRITICAL CARE</h4>
<ul>
{exp:channel:entries channel="specialist" search:sp_specialty="=sp_emergency" dynamic="no" orderby="sp_order" sort="asc"}
    <li class="{switch='one|two'}">
      <a href="{title_permalink='meet'}"><img src="{sp_headshot}" /></a>
      <a href="{title_permalink='meet'}"><p>{title}</p></a>
    </li>                           
{/exp:channel:entries}
</ul>
</li>

这样,每个循环仅返回您正在寻找的匹配项,从而消除了对条件的需要并允许 switch 参数按它想要的方式运行 - 以交替方式将自身应用于循环中的每个返回条目。

于 2012-10-25T14:45:47.600 回答