7

Magento から特定のカテゴリ レベルを取得するにはどうすればよいですか。カテゴリの設定は次のようになります。

root_catalog
    |-Shop
        |-Shoes
        |-T-shirts
    |-Brands
        |-Nike
           |-Womens
           |-Mens
        |-Adidas
        |-Asics

<?php if( $category = Mage::getModel('catalog/category')->load( $categories[1]) ): ?>
    <?php echo $category->getName(); ?>
<?php endif ?>

$category->getName(); を呼び出す場合 ブランド名だけを表示したいのですが、可能ですか?

4

3 に答える 3

9

カテゴリ レベルを取得 $category = Mage::getModel('catalog/category')->load( $categories[1]) )->getLevel() して、ブランド名のカテゴリ レベルを確認し、一致する場合は表示名を確認できます。

例: ブランド カテゴリ レベルが 3 であるとします。

<?php if( $category = Mage::getModel('catalog/category')->load( $categories[1]) ): ?>
    <?php if($category->getLevel() == 3)
        echo $category->getName(); ?>
    <?php endif ?>
<?php endif ?>
于 2013-04-01T05:42:14.550 に答える
5

ANKITの答えは良いですが、コレクション全体をロードして条件を実行するのではなく、特定のレベルを実際にクエリすることで改善できます。たとえば、特定のレベルのすべてのカテゴリを取得する場合:

<ul>
<?php $categories = Mage::getModel('catalog/category')
                         ->getCollection()
                         // magic is prepared here..
                         ->addAttributeToSelect('*')
                         // then the magic happens here:
                         ->addAttributeToFilter('level', array('eq'=>2))
                         ->load();

      foreach($categories as $category):
?>
<li>$category->getName()</li>
<?php endforeach; ?>
</ul>
于 2014-01-27T09:26:28.857 に答える