【发布时间】:2016-01-21 18:40:35
【问题描述】:
在我的 Magento 安装中,我有一个从“类别”中的产品类别生成的下拉菜单。
它使用以下代码:
<?php echo $this->getChildHtml('topMenu') ?> 显示菜单。
但是,每隔一段时间,我想在菜单中添加一个静态 HTML 链接(带有超链接的列表项)。
我如何做到这一点?
非常感谢您的任何指点
【问题讨论】:
在我的 Magento 安装中,我有一个从“类别”中的产品类别生成的下拉菜单。
它使用以下代码:
<?php echo $this->getChildHtml('topMenu') ?> 显示菜单。
但是,每隔一段时间,我想在菜单中添加一个静态 HTML 链接(带有超链接的列表项)。
我如何做到这一点?
非常感谢您的任何指点
【问题讨论】:
在当前版本的 Magento 中,您可以通过创建一个新类别然后将该类别重定向到您想要的任何 URL(CMS 页面、产品页面、异地等)来做到这一点
您现在应该可以转到前端并在菜单中看到新类别。单击它会将您直接重定向到您提供的链接。与其他方法相比,我更喜欢这种方法,因为它可以让您更好地控制静态链接的放置位置,并允许您将静态链接的菜单项放在子菜单中。
此视频逐步展示了 Magento Go 的这项技术,但所有 Magento 风格的过程都是相同的。 http://www.youtube.com/watch?v=5rSIQlRC8Xk
【讨论】:
【讨论】:
你可以试试这个方法。我认为这种方式比其他方式更合适。
http://www.atwix.com/magento/how-to-add-a-new-item-to-the-navigation-menu/
【讨论】:
有几种方法可以做到这一点,你可以重写 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>';
第一种方法为前端开发人员提供了更多的灵活性,而不是在类中硬编码。
你也可以通过这个方法来实现一些严肃的操作,比如在菜单中添加图片,我使用了类似的东西来实现菜单中的“特色产品”功能。
【讨论】:
如何添加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()) 。 '';
【讨论】:
您可以使用自定义链接在 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>
我认为这是最简单的方法。
【讨论】: