从RWD主题的导航中删除“查看所有类别”链接


8

如何从rwd主题的菜单中删除“查看全部”链接?

这是我当前拥有的一组类别,以及我希望其如何显示在菜单中

类别1-
子类别1
----子类别1-
子类别2

类别2-
子类别1

使用rwd时会显示如下菜单

类别1-
查看所有类别1-
子类别1
----查看所有子类别1
----子类别
-子类别2

类别2-
子类别1

我尝试搜索,但找不到解决方案。


里德布隆奎斯特(Reid Blomquist)的回答非常出色..就像魅​​力一样
穆罕默德·阿奎尔(Mohammad Aquil),2016年

Answers:


22

为此,您首先要(如果尚未使用)在RWD设计包中创建一个自定义模板目录。这样可以避免重新创建或覆盖其中的默认模板magento/app/design/frontend/rwd/default/template

为了举例,我们将创建 magento/app/design/frontend/rwd/custom/template

我们要编辑的特定模板是topmenu- renderer.phtml位于magento/app/design/frontend/rwd/default/template/page/html/topmenu/renderer.phtml。要正确扩展此文件,请在magento/app/design/frontend/rwd/custom/template我们刚刚创建的目录中创建一个匹配的目录结构-您应该以一个类似于以下的目录结尾:magento/app/design/frontend/rwd/custom/template/page/html/topmenu

创建topmenu模板目录后,将renderer.phtml文件从复制rwd/default/template/page/html/topmenurwd/custom/template/page/html/topmenu您刚刚创建的目录中。

此文件应在〜第62-71行包含以下代码:

    if (!empty($_hasChildren)) {
    $html .= '<ul class="level'. $childLevel .'">';
    $html .=     '<li class="level'. $nextChildLevel .'">';
    $html .=         '<a class="level'. $nextChildLevel .'" href="'. $child->getUrl() .'">';
    $html .=             $this->__('View All ') . $this->escapeHtml($this->__($child->getName()));
    $html .=         '</a>';
    $html .=     '</li>';
    $html .=     $this->render($child, $childrenWrapClass);
    $html .= '</ul>';
}

在复制的文件中,您将要删除或注释掉中间部分,以便剩下:

    if (!empty($_hasChildren)) {
    $html .= '<ul class="level'. $childLevel .'">';
    $html .=     $this->render($child, $childrenWrapClass);
    $html .= '</ul>';
}

保存文件后,您可以进入adminhtml->系统->配置->常规->设计->主题,并将字段“模板”设置为值“自定义”->保存配置,然后清除缓存。

现在,您应该不再在网站导航中看到“查看所有XXX”部分!


这解决了问题。我碰到过类似的帖子,但没有解释有关创建自定义目录或清除缓存的信息。
马特

-2

您也可以将此CSS添加到某处(例如styles.css)

.view-all {
    display: none;
}

用CSS隐藏某些东西实际上并没有将其删除
Haim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.