Follow the below steps to create CMS page programmatically.
Create UpgradeData.php and define upgrade()
File : app/code/PHPCodez/First/Setup/UpgradeData.php
<?php namespace Vendor\Module\Setup; use Magento\Framework\Setup\UpgradeDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class UpgradeData implements UpgradeDataInterface { protected $_pageFactory; public function __construct(\Magento\Cms\Model\PageFactory $pageFactory) { $this->_pageFactory = $pageFactory; } public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); if (version_compare($context->getVersion(), '0.1.4') < 0) { $page = $this->_pageFactory->create(); $page->setTitle('PHPCodez CMS page') ->setIdentifier('phpcodez-cms-page') ->setIsActive(true) ->setPageLayout('1column') ->setStores(array(0)) ->setContent('This is a test Page created by PHPCodez. Cheers !!!') ->save(); } $setup->endSetup(); } }
Setup the module version
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="PHPCodez_First" setup_version="0.1.4"/> </config>
Purge cache and deploy static content.
php bin/magento cache:flush php bin/magento setup:static-content:deploy -f