I have created one CMS static block.

I want to know that can I change its content by code (programmatically).

Is there any way to do it?

2 Answers 2


Use this

Load by block id:

  ->setData('content', 'SET CONTENT HERE')

Load By identifier:

  ->addFieldToFilter('identifier', 'block_identifier')
  ->setData('content', 'Example content')
  • can i use this code in custom module
    – inrsaurabh
    Commented Oct 24, 2017 at 8:11
  • @SaurabhRanjan Yes, you can use it Commented Oct 24, 2017 at 17:22
  • Executing setData on a collection will not work. You should squeeze in a call to getFirstItem: Mage::getModel('cms/block') ->getCollection() ->addFieldToFilter('identifier', 'block_identifier') ->load() ->getFirstItem() ->setData('content', 'Example content') ->save(); This will work in most cases, but when there are multiple blocks with the same identifier and you want to update all of them you should process all items in the filtered collection. Commented Nov 15, 2019 at 21:01

Using below code you can load cms block using identifier


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.