大家好!
我在 footer.phtml 中使用以下命令来获取我所有的 cms/blocks 在 magento 的页脚
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('home')->toHtml();?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('contact')->toHtml();?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('blog')->toHtml();?>
我想知道是否可以找到某种循环来获取我的所有 block (主页、联系人、博客等)以避免重复上述代码...
有什么建议吗?
最佳答案
如果您追求的是纯代码重用,那么像这样的方法就可以了
<?php $_blocks = array('home','contact','block'); ?>
<?php foreach($_blocks as $_blockName): ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($_blockName)->toHtml();?>
<?php endforeach; ?>
只需将新 block 名称添加到 $_blocks
数组。
你也可以用这样的东西为你的所有 block 做这个
<?php $_blocks = Mage::getModel('cms/block')->getCollection(); ?>
<?php foreach($_blocks as $_block): ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($_block->getIdentifier())->toHtml();?>
<?php endforeach; ?>
但正如其他人所提到的,这似乎是一个坏主意 w/r/t 添加到系统的新 block 。
关于php - 如何在 Magento 页脚中编写 php 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496483/