Expression Engine中的面包屑问题

时间:2011-06-22 09:12:55

标签: php html expressionengine breadcrumbs

我在表达式引擎中遇到一个小问题,我创建了一个面包屑片段。我使用{if segment_}编码创建了它。

所以我为每个页面创建了一个if规则(它不是一个巨大的站点)但是我遇到了一个面包屑试验的问题。我在产品视图页面上有许多类别,在此产品视图页面上,我似乎无法将该类别放在痕迹中。将类别放在实际的类别页面中是没有问题的,我用过:

{if segment_4 == "toys"}<li><a href="index.php/product/category/toys">Toys</a></li>{/if}

然而,在固定链接页面上,我不能这样做,因为网址中没有玩具。

我知道这是一个简单的修复,我对表达引擎上的类别不是很熟悉。

1 个答案:

答案 0 :(得分:0)

这是一个棘手的问题,因为可以将条目(产品)分配给多个类别

为了举例,如果您仅为每个产品分配一个类别 ,则可以在永久链接模板中使用以下代码获取基本的面包屑跟踪:

{exp:channel:entries channel="product" limit="1"}
    <ul class="breadcrumbs">
        <li><a href="{path='site_index'}">Home</a></li>
        <li><a href="{path='product/index'}">{channel}</a></li>
            {categories limit="1" channel="product"}
                <li>
                    <a href="{path='product/index'}">{category_name}</a>
                </li>
            {/categories}
        <li>{title}</li>
    </ul>
{/exp:channel:entries}

这将输出以下内容:

<ul class="breadcrumbs">
    <li><a href="http://localhost/index.php">Home</a></li>
    <li><a href="http://localhost/index.php/product">Products</a></li>
    <li><a href="http://localhost/index.php/product/category/toys">Toys</a></li>
    <li>Buzz Lightyear Action Figure</li>
</ul>

根据您设置网站分类的方式(产品与多个类别的单一类别)将确定您是否可以安全地在面包屑中使用类别。

由于您没有发布更多代码,因此您可能会选择以不同的方式实现,尤其是当您使用embeddd template作为面包屑时。但是,您可以从此示例中提取必要的位以适合您的环境。

此外,您可以使用ExpressionEngine的URL Segment VariablesCategory URL IndicatorConditional Global Variables来增加灵活性。


我还可以提一下,如果您正在寻找一种快速且可高度自定义的解决方案来向您的网站添加面包屑,您可能需要考虑一下体验互联网的Stephen Lewis的商业插件Crumbly。 / p>