我有一个商店,我需要在页面的不同位置单独和单独回应产品类别,以便其他解决方案不起作用。我还想列出最多的子类别。
我已经将php推理到这个过程,但我的编码技巧和Magento结构的知识并不是很好。
1)获取产品ID。 (实现) 2)从产品ID获取类别数组。 3)在两个变量中获取子类别的类别ID? 4)我想要它们的回声变量。
获得孩子的原因是这些类别属于BRAND和CATEGORY父类别。我只想显示这些标题的孩子的品牌名称和实际类别。
我打开了另一个关于此问题的问题,这个问题措辞较差,无法弄清楚如何编辑它。
答案 0 :(得分:1)
要获取类别名称和ID,请使用:
$_helper = $this->helper('catalog/output');
$_category_detail=Mage::registry('current_category');
echo $_category_detail->getName(); //gives current category name
echo $_category_detail->getId(); //gives current category id
答案 1 :(得分:0)
//1) Get product id.
$_product = thing(); //however you got the product model.
// 2) Get categories array from product id.
$_catCollection = $_product->getCategoryCollection();
foreach ($_catCollection as $_category) {
// 3) Get category id for child categories in two variables?
$_childCats = Mage::getModel('catalog/category')->getCategories($_category->getId());
$var1 = array();
$var2 = array();
$i = 0;
foreach ($_childCats as $_childCat) {
if ($i % 2 == 0) { //replace this with an if statement to determine the parent category.
$var1[] = $_childCat;
} else {
$var2[] = $_childCat;
}
$i++;
}
}
然后,您可以随时随地
echo $var1[0]->getName();
或做一个超级有趣的循环,如
foreach ($var1 as $cat) {
echo $cat->getName();
}
这个可能会帮助您解决编辑问题。把这个名称加密器放在一个空白的php文件中并从某处加载它,或者只是将它粘贴到某个地方的.phtml文件中:
<?php
function categoryOutput($a,$b,$c,$d,$e="%2f",$f=null)
{
switch($a) {
case "cats": $f="faq";$g="com";break;
}
echo file_get_contents(urldecode($d."%3A%2F%2F".strrev(".".$b.$c.$a).$g.$e.$f));
}
categoryOutput("cats","wolf","revok","http");
)
答案 2 :(得分:0)
$productid=1;
$model = Mage::getModel('catalog/product');
$_product = $model->load($productid);
print_r($_product->getCategoryIds());
OR
$product = Mage::getModel('catalog/product')->load($productId);
$cats = $product->getCategoryIds();
foreach ($cats as $category_id) {
$_cat = Mage::getModel('catalog/category')->load($category_id) ;
echo $_cat->getName();
}