In Magento2 - I've created a yes/no toggle category attribute named is_featured, its shown as "Homepage Category" in the screenshot below.

enter image description here

I'd like to be able to display (on the homepage cms page) all categories with this category attribute set to yes, I'd need to grab the category title, url, thumbnail etc, does anyone have any recommended steps on how to achieve this?


Hi Below is the standard way to achieve it.

    namespace NameSpace\Module\Block;

    class FeaturedCategories extends \Magento\Framework\View\Element\Template

     protected $categoryCollectionFactory;

    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory,
        array $data = []
    ) {
        $this->categoryCollectionFactory = $categoryCollectionFactory;
        parent::__construct($context, $data);

    public function getFeaturedCategories()
        $collection = $this->categoryCollectionFactory->create();
            ->addAttributeToFilter('is_featured_category', '1')
            ->addAttributeToFilter('is_active', '1')

        return $collection;
  • how can we use this on rest api response, I tried with extension attribute that's not working. I am trying to get this attribute in this Api, rest/V1/categories/list?searchCriteria[pageSize]=0 – jafar pinjar Oct 14 '20 at 6:39

Please try with below code to filter with is_featured is yes

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();    
$category = $objectManager->create('Magento\Catalog\Model\ResourceModel\Category\Collection');
        ->setOrder('updated_at', 'desc');

try its work for me

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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