You can delete CMS Page by Page id in Magento 2 using PageRepositoryInterface interface.
Magento\Cms\Api\PageRepositoryInterface interface is responsible for delete a CMS page from admin panel.
You just need to inject interface in your constructor to delete CMS page.
<?php namespace Path\To\Module; use Magento\Cms\Api\PageRepositoryInterface; use Magento\Framework\Exception\LocalizedException; class CmsPage { public function __construct( PageRepositoryInterface $pageRepository ) { $this->pageRepository = $pageRepository; } /** * @param int $pageId * @return bool */ public function deleteCmsPage(int $pageId) { try { $result = $this->pageRepository->deleteById($pageId); } catch (LocalizedException $exception) { throw $exception->getMessage(); } return $result; } }
You just have to pass CMS page id in deleteCmsPage(1) function to delete specific CMS Page.