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.
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.
// 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
$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!!
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