List Magento-仅列出导航菜单中包含的所有子类别是

List Magento-仅列出导航菜单中包含的所有子类别是,list,magento,List,Magento,在我的magento商店中,我有以下代码将所有子类别列为链接。我只想在类别管理设置中显示导航菜单中包含的类别-是 <?php $_subcategories = $_category->getChildrenCategories() ?> <?php if (count($_subcategories) > 0): ?> <ul> <?php foreach($_subcategories as $_subcategory):

在我的magento商店中,我有以下代码将所有子类别列为链接。我只想在类别管理设置中显示导航菜单中包含的类别-是

<?php $_subcategories = $_category->getChildrenCategories() ?>
<?php if (count($_subcategories) > 0): ?>
    <ul>
    <?php foreach($_subcategories as $_subcategory): ?>
        <li>
            <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
            <?php echo $_subcategory->getName() ?>
            </a>
        </li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>
更新

对于上面的代码,建议的
getIncludeMenu()
函数似乎不适用于
$\u子类别
,但如果我在
$\u类别
上使用它,它就起作用了

我是否在这行中遗漏了一些子类别/子类别

$_subcategories = $_category->getChildrenCategories()
您可以尝试:

<?php if ($_subcategory->getIncludeInMenu()) { ?>

        <li>
            <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
            <?php echo $_subcategory->getName() ?>
            </a>
        </li>

    <?php } ?> 


  • 因此,在子类别的foreach循环将子类别重新加载到变量中后,我可以浏览此解决方案,希望这有意义:

    <?php foreach($_subcategories as $_subcategory): ?>
       <?php $subcat = Mage::getModel('catalog/category')->load($_subcategory->getId()); ?>
       <?php if($subcat->getIncludeInMenu()): ?>
          <li>
             <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"><?php echo $_subcategory->getName() ?></a>
          </li>
       <?php endif; ?>
    <?php endforeach; ?>
    
    
    

  • 谢谢Gerard,但当我这样做时,不会显示子类别。看起来
    getIncludeMenu()
    函数在
    $\u子类别上不起作用,但是如果我在
    $\u类别上使用它,它就起作用了。你知道为什么吗?
    
    <?php foreach($_subcategories as $_subcategory): ?>
       <?php $subcat = Mage::getModel('catalog/category')->load($_subcategory->getId()); ?>
       <?php if($subcat->getIncludeInMenu()): ?>
          <li>
             <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"><?php echo $_subcategory->getName() ?></a>
          </li>
       <?php endif; ?>
    <?php endforeach; ?>
    
    <?php
        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $categoryCollection = $objectManager->get('\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
        $categories = $categoryCollection->create();
        $categories->addAttributeToSelect('*');
        $categories->addAttributeToFilter('level', array('eq'=>2));
        $categories->load();
    ?>
      <?php
        foreach($categories as $category):
            $catId = $category->getId();
            $subcategory = $objectManager->create('Magento\Catalog\Model\Category')->load($catId);
            $subcats = $subcategory->getChildrenCategories();
            $_helper = $this->helper('Magento\Catalog\Helper\Output');
            foreach ($subcats as $subcat) {
                $_category = $objectManager->create('Magento\Catalog\Model\Category')->load($subcat->getId());
                $_outputhelper = $this->helper('Magento\Catalog\Helper\Output');
                $storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface');
                $sitebaseurl = $storeManager->getStore()->getBaseUrl();
                $subcaturl = $subcat->getUrl();
                if (!$_category->getData('include_in_menu')) {
    
                    continue;
    
                }
                ?>
                <a href="<?php echo $subcat->getUrl(); ?>" id="sub_<?php echo $subcat->getId();?>" class="<?php if($subcat->getChildrenCategories()->count()):?>child_sub<?php else:?> no-child<?php endif;?>">    
                <?php echo $subcat->getName(); ?>
                </a>
            <?php } ?>
        <?php endforeach; ?>