0

我正在尝试创建一个自定义下拉菜单,其中只有几个特定类别及其各自的子类别。到目前为止,我设法检索了子类别的名称,但链接不起作用。

我还需要让主类别自动检索自己的名称和 URL,以防它在 Magento 的后端发生更改。在这种情况下,类别 ID 为 265。

我正在开发的网站是 www.personalproducts4u.co.uk

<li class="eight"><a href="<?php echo $this->getUrl() ?>index.php/contacts">Hotel Products</a>
 <?php $children = Mage::getModel('catalog/category')->getCategories(265); ?>
 <ul>
 <?php foreach ($children as $category): ?>
 <li>
 <a href="<?php echo $category->getUrl ?>">
 <?php echo $category->getName(); ?>
 </a>
 </li>
 <?php endforeach; ?>
 </ul>
 </li>
4

1 回答 1

2

问题是$children集合是 type Varien_Data_Tree_Node_Collection,它的元素分别是 type Varien_Data_Tree_Node。调用getUrl()它们将返回 null,它们不是Mage_Catalog_Model_Category对象。但是,您可以通过调用来检索他们的请求路径(url):

$category->getRequestPath();

或者,您可以通过调用加载类别对象:

$cat = Mage::getModel('catalog/category')->load($category->getEntityId());

然后使用$cat->getUrl()调用。不过,这种加载会增加额外的开销。

于 2013-01-29T15:30:13.100 回答