In this post I am going to explain how to get cms page 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 $_pageRepository; protected $_searchCriteriaBuilder; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Cms\Api\PageRepositoryInterface $pageRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, array $data = [] ) { $this->_pageRepository = $pageRepository; $this->_searchCriteriaBuilder = $searchCriteriaBuilder; parent::__construct($context, $data); } // Get CMS Page Collection public function getCmsPageCollection() { $searchCriteria = $this->_searchCriteriaBuilder->create(); $cmsPages = $this->_pageRepository->getList($searchCriteria)->getItems(); return $cmsPages; } |
Add below code snippet in template file.
1 2 3 4 5 6 7 8 9 | // Get CMS Page Collection $cmsPages = $block->getCmsPageCollection(); if ($cmsPages && count($cmsPages) > 0) { foreach ($cmsPages as $cmsPage) { echo $cmsPage->getId() . '<br/>'; echo $cmsPage->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(); $pageRepository = $objectManager->get('Magento\Cms\Api\PageRepositoryInterface'); $searchCriteriaBuilder = $objectManager->get('Magento\Framework\Api\SearchCriteriaBuilder'); $searchCriteria = $searchCriteriaBuilder->create(); $cmsPages = $pageRepository->getList($searchCriteria)->getItems(); if ($cmsPages && count($cmsPages) > 0) { foreach ($cmsPages as $cmsPage) { echo $cmsPage->getId() . '<br/>'; echo $cmsPage->getTitle() . '<br/>'; } } |
Thats it. Enjoy Magento 2!!
Leave a Reply