In this post I am going to explain how to get cms block collection in Magento 2.
1. Using Dependency Injection
Add below code snippet in Block class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | protected $_blockRepository; protected $_searchCriteriaBuilder; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Cms\Api\BlockRepositoryInterface $blockRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, array $data = [] ) { $this->_blockRepository = $blockRepository; $this->_searchCriteriaBuilder = $searchCriteriaBuilder; parent::__construct($context, $data); } // Get CMS Block Collection public function getCmsBlockCollection() { $searchCriteria = $this->_searchCriteriaBuilder->create(); $cmsBlocks = $this->_blockRepository->getList($searchCriteria)->getItems(); return $cmsBlocks; } |
Add below code snippet in template file.
1 2 3 4 5 6 7 8 9 | // Get CMS Block Collection $cmsBlocks = $block->getCmsBlockCollection(); if ($cmsBlocks && count($cmsBlocks) > 0) { foreach ($cmsBlocks as $cmsBlock) { echo $cmsBlock->getId() . '<br/>'; echo $cmsBlock->getTitle() . '<br/>'; } } |
2. Using Object Manager
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $blockRepository = $objectManager->get('Magento\Cms\Api\BlockRepositoryInterface'); $searchCriteriaBuilder = $objectManager->get('Magento\Framework\Api\SearchCriteriaBuilder'); $searchCriteria = $searchCriteriaBuilder->create(); $cmsBlocks = $blockRepository->getList($searchCriteria)->getItems(); if ($cmsBlocks && count($cmsBlocks) > 0) { foreach ($cmsBlocks as $cmsBlock) { echo $cmsBlock->getId() . '<br/>'; echo $cmsBlock->getTitle() . '<br/>'; } } |
Thats it. Enjoy Magento 2!!
Leave a Reply