Sample File Path: app/code/YourCompanyName/YourModuleName/Block/YourCustomBlock.php
<?phpnamespace YourCompanyName\YourModuleName\Block;class YourCustomBlock extends \Magento\Framework\View\Element\Template{ protected $_categoryCollectionFactory; protected $_categoryHelper; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory, \Magento\Catalog\Helper\Category $categoryHelper, array $data = [] ) { $this->_categoryCollectionFactory = $categoryCollectionFactory; $this->_categoryHelper = $categoryHelper; parent::__construct($context, $data); } public function getCategoryCollection($isActive = true, $level = false, $sortBy = false, $pageSize = false) { $collection = $this->_categoryCollectionFactory->create(); $collection->addAttributeToSelect('*'); // select only active categories if ($isActive) { $collection->addIsActiveFilter(); } // select categories of certain level if ($level) { $collection->addLevelFilter($level); } // sort categories by some value if ($sortBy) { $collection->addOrderField($sortBy); } // set pagination if ($pageSize) { $collection->setPageSize($pageSize); } return $collection; } public function getStoreCategories($sorted = false, $asCollection = false, $toLoad = true) { return $this->_categoryHelper->getStoreCategories($sorted = false, $asCollection = false, $toLoad = true); }} //////////////////////////////////////////////////////////////////// view (.phtml) file as follows. // get the list of all categories$categories = $block->getCategoryCollection(); foreach ($categories as $category) { echo $category->getId() . '<br />'; echo $category->getName() . '<br />';} // get categories sorted by category name$categories = $block->getCategoryCollection(true, false, 'name', false);foreach ($categories as $category) { echo $category->getId() . '<br />'; echo $category->getName() . '<br />';} // get current store’s categories$categories = $block->getStoreCategories();foreach ($categories as $category) { echo $category->getId() . '<br />'; echo $category->getName() . '<br />';} ////////////////////////////////////////////////////////////////////Using Object Manager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();// get the list of all categories$categoryCollection = $objectManager->get('\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');$categories = $categoryCollection->create();$categories->addAttributeToSelect('*'); foreach ($categories as $category) { echo $category->getId() . '<br />'; echo $category->getName() . '<br />'; echo $category->getUrl() . '<br />';}// get current store’s categories $categoryHelper = $objectManager->get('\Magento\Catalog\Helper\Category');$categories = $categoryHelper->getStoreCategories(); foreach ($categories as $category) { echo $category->getId() . '<br />'; echo $category->getName() . '<br />';}
Comments
Post a Comment