我正在查看在单个产品页面上显示已在 Magento 管理区域中选择的子类别的名称。
我打开了模板,但我只需要调用相关代码,有什么想法吗?
尝试这个
<?php
$onCatalog = false;
if(Mage::registry('current_product')) {
$onCatalog = true;
}
好的,如果你在 catalog>product>view.phtml 或 catalog>product>list.phtml
<?php foreach($_product->getCategoryCollection() as $_cat): ?>
<?php echo $_cat->getName() ?><br />
<?php endforeach ?>
否则,第一行应该得到你的产品:
$_product = Mage::registry('current_product');
会给您当前选择的产品。
尽管:
$_product = Mage::helper('catalog/product')->load(35)
会给你产品 35。
你可以用这个。
<h2>This product is in the following categories</h2>
<ul>
<?php
$categories = $_product->getCategoryCollection();
$categories->addAttributeToSelect(array('name', 'url'));
foreach ($categories as $category){
if ($category->getName() == 'Default Category' || $category->getName() == 'Categories') {
continue;
}
?>
<li><a href="<?php echo $category->getUrl() ?>"><?php echo $category->getName() ?></a></li>
<?php } ?>
</ul>
试试这个(假设您在产品视图模板 view.phtml 中):
<?php foreach($_product->getCategoryCollection() as $_cat): ?>
<?php echo $_cat->getName() ?><br />
<?php endofreach ?>
这应该让您开始并获得产品已分配到的类别列表。
如果您希望拥有 ID:
<?php $categoryIds = $_product->getCategoryIds() // an array ?>