【问题标题】:Add Static Links to Top Navigation Menu in Magento在 Magento 的顶部导航菜单中添加静态链接
【发布时间】:2016-01-21 18:40:35
【问题描述】:

在我的 Magento 安装中,我有一个从“类别”中的产品类别生成的下拉菜单。 它使用以下代码: <?php echo $this->getChildHtml('topMenu') ?> 显示菜单。

但是,每隔一段时间,我想在菜单中添加一个静态 HTML 链接(带有超链接的列表项)。

我如何做到这一点?

非常感谢您的任何指点

【问题讨论】:

    标签: php magento


    【解决方案1】:

    在当前版本的 Magento 中,您可以通过创建一个新类别然后将该类别重定向到您想要的任何 URL(CMS 页面、产品页面、异地等)来做到这一点

    1. 创建一个新的子类别。将此命名为您希望它在菜单中显示的方式。确保它有一个唯一的 URL 键,它是活动的,并且它是“在导航菜单中”。您可以通过拖放更改它在类别菜单中的位置来更改它的显示位置,方法是拖放到您希望它显示的位置。
    2. 进入 URL 重写管理。您的新类别应该是刚刚创建的顶级系统链接。如果不是,则按新类别的 id 号过滤表。进入这个新的重定向。
    3. 将重定向更改为永久并复制目标路径。下一步您将需要它。保存您的更改。
    4. 使用以下选项创建新的自定义 URL 重定向并保存
      • Store:适用于的商店。必须与您要重定向的类别的商店相匹配
      • ID 路径:您希望类别转到的 URL。 (即礼品卡)
      • 请求路径:将您从上一步复制的目标路径粘贴到此处
      • 目标路径:您希望类别转到的 URL。 (即礼品卡)
      • 重定向:设置为永久 301
    5. 转到索引管理并刷新目录 URL 重写(如果需要)

    您现在应该可以转到前端并在菜单中看到新类别。单击它会将您直接重定向到您提供的链接。与其他方法相比,我更喜欢这种方法,因为它可以让您更好地控制静态链接的放置位置,并允许您将静态链接的菜单项放在子菜单中。

    此视频逐步展示了 Magento Go 的这项技术,但所有 Magento 风格的过程都是相同的。 http://www.youtube.com/watch?v=5rSIQlRC8Xk

    【讨论】:

    • 它是 SEO 的好选择吗?我的意思是您将在站点地图中有 2 个指向同一页面的不同链接...
    • 很高兴知道...我绝对不会使用 Magento。
    【解决方案2】:

    【讨论】:

    • 虽然理论上可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
    • 以上链接进入主页
    • 我部分归咎于网站所有者 - 他们肯定是 301 吗? :)
    【解决方案3】:

    你可以试试这个方法。我认为这种方式比其他方式更合适。

    http://www.atwix.com/magento/how-to-add-a-new-item-to-the-navigation-menu/

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 感谢您的评论@fancyPants。我会更新我的答案。
    【解决方案4】:

    有几种方法可以做到这一点,你可以重写 Mage_Catalog_Block_Navigation 来实现。

    在 renderCategoriesMenuHtml 函数中,您可以使用计数器在 foreach 循环内的各个位置捕获它并渲染一个块:

    if ($j == 1) {
        $html .= $this->getLayout()->createBlock('namespace/yourmodule')->setTemplate('topMenu/link.phtml')->toHtml();
    }
    

    或者像这样直接渲染链接:

    $html .= '<a href="yourlink.php">Link Name</a>';
    

    第一种方法为前端开发人员提供了更多的灵活性,而不是在类中硬编码。

    你也可以通过这个方法来实现一些严肃的操作,比如在菜单中添加图片,我使用了类似的东西来实现菜单中的“特色产品”功能。

    【讨论】:

      【解决方案5】:

      如何添加magento顶部菜单超链接标题标签 打开文件并查看代码

      $html .= 'getUrl() 。 '" ' . $outermostClassCode . ' >' . $this->escapeHtml($child->getName()) 。 '';

      app/code/core/Mage/Page/Block/Html/Topmenu.php

      $html .= 'getUrl() 。 '" ' . $outermostClassCode . 'title="' . $this->escapeHtml($child->getName()) 。 '">' . $this->escapeHtml($child->getName()) 。 '';

      【讨论】:

        【解决方案6】:

        您可以使用自定义链接在 top.menu 内创建一个块。将此添加到您主题的 local.xml 文件中:

        <reference name="header">
            <reference name="top.menu">
                <block type="page/template_links" name="top.menu.custom-links">
                    <action method="addLink" translate="label title">
                        <label>New Link</label>
                        <url>my-url</url>
                        <title>New Link</title>
                        <prepare>true</prepare>
                        <urlParams helper="core/url/getHomeUrl"/>
                        <position>60</position>
                    </action>
                </block>
            </reference>
        </reference>
        

        我认为这是最简单的方法。

        【讨论】:

        • 问题是关于顶部导航而不是 top.menu 链接
        猜你喜欢
        • 2010-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多