4

I want to show all the category on the left sidebar on home page. Please let me know how to get all the categories by collection, or there is another way to call all the category. please let me know

3

4 Answers 4

4

Here is open source extension for do that - you can use code and modify for your needs Magento 2 Frontend : How to call category collection on home page Explained in blog post

2
  • 1
    Awesome FireBear. Its work for me. thanks for giving such attention Commented Oct 12, 2015 at 5:25
  • How to show category images I am using $category->getImageUrl(); but its not working Commented Feb 15, 2016 at 10:43
3
<?php 
  $categoryHelper = $this->helper('Magento\Catalog\Helper\Category');
  foreach($categoryHelper->getStoreCategories() as $category): 
?>
  <li><a href="<?php echo $categoryHelper->getCategoryUrl($category) ?>"><?php echo $category->getName() ?></a></li>
<?php endforeach; ?>
0
1

Check below code:

<?php
$objectManagerr = \Magento\Framework\App\ObjectManager::getInstance();
                    $categoryFactory = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');

                    $categories = $categoryFactory->create()                              
                                ->addAttributeToSelect('*');

foreach ($categories as $category):     
echo $category->getName();
endforeach;
?>
2
  • 1
    Btw, it's not recommended to use object manager directly for creating objects. Use DI instead.
    – MagePsycho
    Commented May 25, 2016 at 6:43
  • Is there any way to get the products of current category like above? If any than please share..
    – Yudi
    Commented Oct 27, 2016 at 13:06
0

You need to use DI in your class - 1. add property of AdminSession class to class 2. add including of the variable using dependensy injection:

/**
 * @var \Magento\Store\Model\StoreManagerInterface
 */

protected $_storeManager;

public function __construct(
    \Magento\Store\Model\StoreManagerInterface  $_storeManager
){
    $this->_storeManager = $_storeManager;
}
$store = 1;//store id
public function getCategories($store){
    $rootCategoryId = $this->_storeManager->getStore($store)
        ->getRootCategoryId();
    $collection = $this->_categoryCollectionFactory->create();
    $collection->addAttributeToSelect('name','id')
        ->addIsActiveFilter(true)
        ->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"))
        ->addLevelFilter(2);

    foreach ($collection as $category) {
        $categories[] = array(
            'id'=>$category->getId(),
            'name'=>$category->getName(),
        ); 
    }
    return $categories;
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.