1

我一直在寻找几天来获得 magento 产品的最后一个子类别。

实际上,我要做的是显示产品所在的最后一个子类别。例如,我有塑料和玻璃作为产品。我想显示最后一个子类别,即杯子或盘子。

|派对
--|男孩
----|蝙蝠侠
--------|杯子
-----------|塑料
-----------|玻璃
-- ------|盘子
----|超人

我已经编辑了 list.phtml 文件,我可以从数组中获取类别 ID 和名称,但它们都混淆了。所以没有办法确定哪一个是最后一个类别。magento 中是否有任何默认功能?或者有人好心来帮助我吗?提前致谢。

4

1 回答 1

0

编辑

好的,从您的描述来看,您似乎想从您所在的当前类别中获取子类别。(IE Getcupsplatesbatman类别视图中)。

以下内容应该与获取当前孩子所需的内容一样少。

<?php
    $_helper = Mage::helper('catalog/category');
    $children = Mage::registry( 'current_category' )->getChildrenCategories();
?>
<ul>
    <?php foreach( $children as $child ): ?>
        <li><a href="<?php echo $_helper->getCategoryUrl($child); ?>"><?php echo $child->getName() ?></a></li>
    <?php endforeach; ?>
</ul>

以前的答案

这有点迂回,但这可以从产品对象中获取父类别 ID。

//If you don't have a product to start with, load by ID.
$_product = Mage::getModel( 'catalog/product' )->load($id);

//Assign Category Model
$categoryModel = Mage::getModel( 'catalog/category' );

//Get Array of Category Id's with Last as First (Reversed)
$_categories = array_reverse( $_product->getCategoryIds() );

//Get Parent Category Id
$_parentId = $categoryModel->load($_categories[0])->getParentId();

//Load Parent Category
$_category = $categoryModel->load($_parentId);

//Do something with $_category
echo $_category->getName();

当产品仅分配一个类别 ID 时,它会更好地工作。如果已将多个类别分配给一个产品,您可能无法获得所需的类别。

此外,您可以使用稍微快一点的方法来获取它,但是如果搜索了产品,则此方法不起作用:

$_category = Mage::getModel( 'catalog/category' )->load( Mage::registry( 'current_category' )->getParentId() );

我没有测试上面的行,但它应该可以工作。仅当通过浏览类别到达产品时。

于 2013-08-29T19:50:56.767 回答