Magento Tutorials Accessing Static Blocks In Magento

« Back to Magento Tutorials

Magento 1 Static Blocks

Static blocks are a semi-useful way to allow clients to edit content without having code access. There are a lot of issues with static blocks, but sometimes they can be useful. Once you have created your static block, you can retrieve it in PHP using the code below.

// Retrieve the layout object
$layout = Mage::getSingleton('core/layout');

// Generate a CMS block object
$block = $layout->createBlock('cms/block');

// Set the block ID of the static block
$block->setBlockId('block-id-in-magento');

// Write the static block content to screen
echo $block->toHtml();

Add the above code into any phtml file in Magento and change the 'block-id-in-magento' for the ID of the block you want to load.

You can also access a static block using the following layout XML.

<reference name="content">
  <block type="cms/block" name="block.name">
    <action method="setBlockId"><block_id>block-id-in-magento</block_id></action>
  </block>
</reference>

Magento 2 Static Blocks

The following code will get a static block's HTML output in PHP in Magento 2.

// Object Manager has been used for simplicity	
$om = \Magento\Framework\App\ObjectManage::getInstance();

$staticBlock = $om->get('Magento\Cms\Block\BlockFactory')->create();

// Change the your-block-id for the correct block ID
$staticBlock->setBlockId('your-block-id');

echo $staticBlock->toHtml();

You can also get the same block via XML using the following code.

<block class="Magento\Cms\Block\Block" name="Promo">
	<arguments>
		<argument name="block_id" xsi:type="string">your-block-id</argument>
	</arguments>
</block>