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?
Use this
Load by block id:
Mage::getModel('cms/block')->load($id)
->setData('content', 'SET CONTENT HERE')
->save();
Load By identifier:
Mage::getModel('cms/block')
->getCollection()
->addFieldToFilter('identifier', 'block_identifier')
->load()
->setData('content', 'Example content')
->save();
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.
Using below code you can load cms block using identifier
Mage::getModel('cms/block')->load('{BLOCK_IDENTIFIER}')->setContent('your-content')->save();