繁体   English   中英

在magento中获取产品的最后一个子类别

[英]Getting the last sub-category of a product in magento

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

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

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

我已经编辑了list.phtml文件,我可以从数组中获取类别ID和名称,但是它们都混在一起了。 因此,无法确定哪个是最后一个类别。 magento中有任何默认功能吗? 还是有人善良地帮助我? 提前致谢。

编辑

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

以下内容应与获取当前孩子所需的时间差不多。

<?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() );

我没有测试上面的行,但是应该可以。 但是只有通过浏览类别才能找到产品。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM