0

このコードを使用して、カテゴリ ツリーを表示します。

$rootcatId= Mage::app()->getStore()->getRootCategoryId(); 
$categories = Mage::getModel('catalog/category')->getCategories($rootcatId);

function  get_categories($categories) {
    $array= '<ul>';
    foreach($categories as $category) {
        $cat = Mage::getModel('catalog/category')->load($category->getId());
        //$count = $cat->getProductCount();
        $array .= '<li>'.
        $category->getId().' <a href="' . Mage::getUrl($cat->getUrlPath()). '">' . 
                  $category->getName(); //. "(".$count.")</a>\n";
        if($category->hasChildren()) {
            $children = Mage::getModel('catalog/category')->getCategories($category->getId());
             $array .=  get_categories($children);
            }
         $array .= '</li>';
    }
    return  $array . '</ul>';
}
echo  get_categories($categories); 

非表示のカテゴリも再帰的に表示するように変更するにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

3

getCategories() メソッドを使用する代わりに、カスタム コレクションをセットアップできます。特に指示がない限り、非表示のカテゴリが表示されます。

例えば:

$categories = Mage::getModel('catalog/category')
->load(Mage::app()->getStore()->getRootCategoryId())
->getCollection()
->addAttributeToSort('position', 'ASC')
->addFieldToFilter('parent_id',Mage::app()->getStore()->getRootCategoryId())
->addFieldToFilter('include_in_menu',1)
->addAttributeToSelect('name')
于 2013-01-22T15:36:04.697 に答える