【问题标题】:magento getting the sub sub category ID in product list pagemagento在产品列表页面中获取子子类别ID
【发布时间】:2015-08-10 18:16:30
【问题描述】:

我需要在产品列表页面中添加 CMS 页面,仅适用于特定的sub-sub-category = 35。我尝试的方法是编辑view.phtml。

echo $this->getLayout()->createBlock('cms/block')->setBlockId('adminCMSid')->toHtml()

但是如果当前产品的子子类别等于 35,我需要在 view.phtml 中进行比较。 有人可以帮我如何获取当前的子子类别ID并解决问题吗?

【问题讨论】:

    标签: magento


    【解决方案1】:

    简答:

    在catalog/view.phtml:

    <?php
        $_categories = $_product->getCategoryIds(); 
    
        foreach($_categories as $category){
            if($category == 35){
                echo $this->getLayout()->createBlock('cms/block')->setBlockId('adminCMSid')->toHtml();
                break; //stop the loop
            }
        }
    ?>
    

    长答案:

    如果您想在模板文件中查找当前可用的数据,例如在 view.phtml 中的 $_product,您可以插入:

    <?php Mage::log(print_r($_product->debug(), true), null, 'finddata.log', true); ?>
    

    刷新产品页面,然后进入 var/logs 文件夹,您将找到 finddata.log 文件。 在那里您可以看到该产品的类别以及您可以使用的数组详细信息。

    然后你可以这样做:

    $_categories = $_product->getCategoryIds(); 
    var_dump($_categories);
    

    这将为您提供该给定产品的类别数组。像这样更容易测试和找出自己的方式。

    【讨论】:

      【解决方案2】:
      <?php $_categories = $this->getCurrentChildCategories() ?>
      
      <?php foreach ($_categories as $_category): ?>
          <?php if ($_category->getId() == 35) {
              //Subcategory id equals 35
          }?>
      <?php endforeach; ?>
      

      【讨论】:

      • 我没有让它与 $this-> getCurrentChildCategories() 一起工作。
      • 在查看此内容时,您必须在 catalog/product/list.phtml 中才能使其正常工作。只是 Claudiu 上面发布的另一种方法,您会发现磁电机有很多很棒的方法,希望这对将来的其他人有所帮助:-)
      猜你喜欢
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多