Magento 2 Get all the attribute list which are used in Layered Navigation in category page and search page.
You can get all the filterable attribute list by Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory class.
The result will be all those attributes that have,
- Use in Layered Navigation status are Filterable (with results)
- Filterable (no results)
You need to create __construct( ) function for define dependency of Class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php private $checkoutSession; public function __construct( \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $productAttributeCollectionFactory ) { $this->productAttributeCollectionFactory = $productAttributeCollectionFactory; } public function getFilterableAttributes() { /** @var \Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection $productAttributes */ $productAttributes = $this->productAttributeCollectionFactory->create(); $productAttributes->addFieldToFilter( ['is_filterable', 'is_filterable_in_search'], [[1, 2], 1] ); return $productAttributes; } |
Now call a function in template file by iterating over a loop to fetch each attribute code,
1 2 3 4 5 | $getAttributes = $block->getFilterableAttributes(); foreach ($getAttributes as $attribute) { echo $attribute->getAttributeCode();echo "<br>"; } |
You get all the filterable attributes used for your store.
The Result for Magento 2.4 Store with Sample data installed,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | price manufacturer color activity style_bags material strap_bags features_bags gender category_gear size eco_collection performance_fabric erin_recommends new sale format style_bottom style_general sleeve collar pattern climate |
This is the list of product attribute which have filterable enable from the Admin panel.