Php 表达式引擎-面包屑问题!

Php 表达式引擎-面包屑问题!,php,html,expressionengine,Php,Html,Expressionengine,好的,我已经使用IF段和IF category_id语句设置了面包屑试用版。原因是因为我有不同的产品连接到2-3类等 我已经完成了整个测试,所有的工作都很好(虽然有很多代码!) 然而,有一个类别我有一个大问题,我已经尝试了几个小时来纠正它,但不能,基本上这个类别是在两个家长和两个孩子的类别,在一个类别组下。。。其他所有代码都只有一个父级和一个子级,因此我的代码运行良好 我什么都试过了,但都起作用了 玩具>>本10>>儿童>>本10 它同时重复类别和父项,因为条目位于同一组中的这两个类别中。。。因

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

我已经完成了整个测试,所有的工作都很好(虽然有很多代码!)

然而,有一个类别我有一个大问题,我已经尝试了几个小时来纠正它,但不能,基本上这个类别是在两个家长和两个孩子的类别,在一个类别组下。。。其他所有代码都只有一个父级和一个子级,因此我的代码运行良好

我什么都试过了,但都起作用了

玩具>>本10>>儿童>>本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}
{if segment_2==“view”}
{exp:channel:entries channel=“toys”}
{类别}
{if parent_id==“25”}
{如果类别_id==“31”}
  • {/if} {/if} {/类别} {/exp:channel:entries} {/if} {如果段_2==“视图”} {exp:channel:entries channel=“toys”} {类别} {if parent_id==“26”} {如果类别_id==“40”}
  • {/if} {/if} {/类别} {/exp:channel:entries} {/if}
    我会假设定义特定的父项和cat id,这将只显示一个


    有什么解决方案吗?

    在条件句中可以有AND语句吗? 差不多
    {if parent_id==“26”&&category_id==“40”}


    只是猜测而已。这意味着您要进行一次检查,并且两个条件都必须为真。

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

    要了解您试图争夺面包屑踪迹的原因,请使用以下代码输出每个类别的“
    parent\u id
    category\u id

    {exp:channel:entries channel="toys"}
        {categories}
            <strong>{category_name}</strong> [{parent_id}, {category_id}]<br />
        {/categories}
    {/exp:channel:entries}
    
    有了这些信息,您可以修改有条件的面包屑,以处理分类为两个或两个以上类别的产品:

    {exp:channel:entries channel=“toys”}
    {categories limit=“2”}
    {if parent_id==“0”}
    
  • {/if} {if parent_id!=“0”}
  • {/if} {/类别} {/exp:channel:entries}
    感谢您的帮助,但我尝试过了,它仍然显示了双亲和两个id,因为我有2个if条件,条目在每个双亲和每个id中……基本上EE是使用第一个if语句并执行-是的,它在该双亲id中,是的,它在该类别id中。然后输出结果。然后它移动下一个IF语句,是的,它也在父id中,是的,它在类别id中。。。所以它也在输出。我需要它根据用户来自类别d_ben10还是类别c_ben10(我的两个类别id名称)来输出一个。我建议养成缩进代码的习惯——这将帮助其他人理解和阅读您的逻辑,同时确保所有嵌套标记都正确关闭。您好,谢谢,但它仍然不起作用。它现在首先输出子类别,并且仍然只在ben 10页面中显示相同的父类别。
    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}