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.
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.
// 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
$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!!
Write an article about ecommerce that help people to grow their ecommerce business. You’ll find best ecommerce guide, news, tips & more!



Leave a Reply