[英]Getting the last sub-category of a product in magento
我一直在寻找几天来获取magento产品的最后一个子类别。
实际上,我要做的是显示产品放置的最后一个子类别。例如,我将塑料和玻璃作为产品。 我想显示最后一个子类别,即杯子或盘子。
派对
-|男孩
---- |蝙蝠侠
-------- |杯子
----------- |塑料
----------- |玻璃
-------- |盘子
---- |超人
我已经编辑了list.phtml文件,我可以从数组中获取类别ID和名称,但是它们都混在一起了。 因此,无法确定哪个是最后一个类别。 magento中有任何默认功能吗? 还是有人善良地帮助我? 提前致谢。
编辑
好的,从您的描述看来,您似乎想从当前所在的类别中获取子类别。(即,在batman
类别视图中获取cups
和plates
)。
以下内容应与获取当前孩子所需的时间差不多。
<?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.