【问题标题】:Expression Engine - Breadcrumbs problem!表达式引擎 - 面包屑问题!
【发布时间】:2011-07-08 09:44:44
【问题描述】:

好的,我已经使用 IF 段和 IF category_id 语句设置了我的面包屑试验。原因是因为我有不同的产品链接到 2-3 个类别等...

我已经完成了整个试验并且一切正常(虽然有很多编码!)

但是,一个类别我有一个大问题,我已经尝试了几个小时来纠正它但不能,基本上这个类别是在一个类别组下的 2 个父母和 2 个孩子类别中......所有其他人只有一个父母和一个孩子,所以我的代码工作正常。

我已经尝试了所有方法,但它正在启动

玩具 >> Ben 10 >> 儿童 >> Ben 10

它重复了类别和父母,因为条目在一个组中的这两个中......所以我尝试在我的主 if 语句之外创建两个单独的 if 语句,如下所示:

我的代码是:

{if segment_2 == "view"}
    {exp:channel:entries channel="toys"}
    {categories}
    {if parent_id == "25"}
    {if category_id == "31"}
    <li>
    <a href="(URL TO CATEGORY)">Toys</a>
    </li>
    <li>
    <a href="{path='toys/list'}">{category_name}</a>
    </li>
    {/if}
    {/if}
    {/categories}
    {/exp:channel:entries}
{/if}

{if segment_2 == "view"}
    {exp:channel:entries channel="toys"}
    {categories}
    {if parent_id == "26"}
    {if category_id == "40"}
    <li>
    <a href="(URL TO CATEGORY)">Children</a>
    </li>
    <li>
    <a href="{path='toys/list'}">{category_name}</a>
    </li>
    {/if}
    {/if}
    {/categories}
    {/exp:channel:entries}
{/if}

我会假设定义特定的父母和猫 id 这只会显示一个......

有什么解决办法吗?

【问题讨论】:

  • 我建议养成缩进代码的习惯——这将有助于其他人理解和阅读您的逻辑,同时确保所有嵌套标签都正确关闭。

标签: php html expressionengine


【解决方案1】:

出于调试目的,了解和“可视化”您正在处理的数据的结构通常很有帮助。

要了解您试图寻找面包屑线索的categories,请使用以下代码输出每个类别的parent_idcategory_id

{exp:channel:entries channel="toys"}
    {categories}
        <strong>{category_name}</strong> [{parent_id}, {category_id}]<br />
    {/categories}
{/exp:channel:entries}

这将为您提供如下输出:

Toys [0, 1]       // Parent Category
Children [1, 2]   // Child Category

有了这些信息,您可以修改条件面包屑以处理分为两个或更多类别的产品

{exp:channel:entries channel="toys"}
    {categories limit="2"}    
        {if parent_id == "0"}
            <!-- Show the Parent Category -->
            <li><a href="{path=toys/list}">{category_name}</a></li>
        {/if}

        {if parent_id != "0"}
            <!-- Show the Child Category -->
            <li><a href="{path=toys/list}">{category_name}</a></li>
        {/if}
    {/categories}
{/exp:channel:entries}

【讨论】:

  • 嗨,谢谢你,但它仍然不起作用。现在是先输出子类别,仍然只在ben 10页面显示相同的父类别。
【解决方案2】:

你可以在你的条件句中使用 AND 语句吗? 就像是 {if parent_id == "26" &amp;&amp; category_id == "40"}

只是猜测。这意味着您正在进行一项检查,并且两个条件都必须为真。

【讨论】:

  • 感谢您的帮助,但我试过了,它仍然显示父母和两个 id,因为我有 2 个 if 条件并且条目在每个父母和每个 id...
  • 基本上,EE 采用第一个 IF 语句并继续运行 - 是的,它在那个父 ID 中,是的,它在那个类别 ID 中。然后输出结果。然后它移动下一个 IF 语句并继续,是的,它也在那个父 ID 中,是的,它在那个类别 ID 中......所以它也在输出它。我需要它只输出一个取决于用户是来自类别 d_ben10 还是 c_ben10(我的两个类别 id 名称)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 2011-11-06
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多