Magento: Create CMS Page & Static Block programmatically

You can manually create CMS Pages in Magento from CMS -> Pages. Similarly, you can create Static Blocks from CMS -> Static Blocks.

This article will show how to create CMS pages and Static blocks programmatically from code.

Create CMS Page


Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$cmsPage = array(
			'title' => 'Test Page',
			'identifier' => 'test-page',
			'content' => 'Sample Test Page',				
			'is_active' => 1,
			'sort_order' => 0,
			'stores' => array(0),
			'root_template' => 'three_columns'
			);
			
Mage::getModel('cms/page')->setData($cmsPage)->save();

Create Static Block


Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$staticBlock = array(
				'title' => 'Test Block',
				'identifier' => 'test-block',					
				'content' => 'Sample Test Block',
				'is_active' => 1,					
				'stores' => array(0)
				);
				
Mage::getModel('cms/block')->setData($staticBlock)->save();

Please note the following line of code above. This is necessary when you are creating cms pages and static blocks from frontend.:-


Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

Hope this helps. Thanks.