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