2010-08-19 89 views

回答

5

这给一试:

$currentCatIds = $_product->getCategoryIds(); 

$categoryCollection = Mage::getResourceModel('catalog/category_collection') 
    ->addAttributeToSelect('name') 
    ->addAttributeToSelect('url') 
    ->addAttributeToFilter('entity_id', $currentCatIds) 
    ->addIsActiveFilter(); 

干杯, JD

+0

这将工作在1.4?我听说category_ids属性已被弃用... – silvo 2010-08-19 17:59:31

+0

我使用第一种方法,它在Magento 1.4.0.1上工作。 – a1anm 2010-08-22 09:55:15

+0

@silvo'category_ids'仍然出现在我的''eav_attribute'表中'attribute_id' = 91.您从哪里听说过关于弃用?我还没有看到关于任何弃用的官方公告,这将是有趣的阅读... – 2010-08-23 01:06:52

1

您可以使用下面的代码以显示与所选择的产品的所有类别产品详情页面。

<?php $categories = $_product->getCategoryIds(); ?> 
      <?php foreach($categories as $k => $_category_id): ?> 
      <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
      <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a> 
      <?php endforeach; ?> 
+0

这很好用!但只有一件事,比如说我们不想在输出中列出一个特定的类别ID(或几个类别ID),请问这个代码会如何实现? – 2013-09-06 10:40:29

0

该代码将根据商店标识获取产品类别名称。这也将使用完整的多商店和多网站的概念

$product = Mage::getModel('catalog/product')->load($product_id); 
    $cats = $product->getCategoryIds(); 
    foreach ($cats as $category_id) { 
    $_cat = Mage::getModel('catalog/category')->setStoreId(Mage::app()- >getStore()->getId())->load($category_id); 
    echo $_cat->getName();    
    }