好的,我已经设置了我的面包屑试验使用IF段和IF category_id语句。原因是我有不同的产品链接到2-3个类别等等。
我已经完成了整个试验,所有工作都很好(虽然有很多编码!)
然而,一个类别我有一个大问题,我已经尝试了几个小时来纠正它,但不能,基本上这个类别是在2个父母和2个孩子类别,在一个类别组下…所有其他的只有一个父节点和一个子节点,所以我的代码工作得很好。
我已经尝试了所有方法,但是它还是出现
玩具>>本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}
我假设定义了特定的父元素和cat id,这将只显示一个…
解决方案吗?
为了调试的目的,理解和"可视化"您正在处理的数据的结构通常是有帮助的。
要了解您试图为面包屑跟踪整理的类别,请使用以下代码输出每个类别的parent_id
和category_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}
可以在条件中使用AND语句吗?类似的{if parent_id == "26" && category_id == "40"}
只是猜测。这意味着你只做一次检查,而且两个条件都必须为真。