我知道您可以使用以下命令直接从模板文件调用cms块:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_links')->toHtml() ?>
有没有办法用widget实例做到这一点?
答案 0 :(得分:21)
在你的模板中:
<?php
$filter = Mage::getModel('widget/template_filter');
echo $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
?>
答案 1 :(得分:5)
Andrew最后错过了Html()函数:
<?php echo $this->getLayout()->createBlock('cms/widget_page_link')->setTemplate('cms/widget/link/link_block.phtml')->setPageId(2)->toHtml(); ?>
答案 2 :(得分:2)
要知道正确的参数“类型”,“模板”等,您可以使用块/页面模板中图形编辑器上的“插入小部件”按钮,然后单击显示/隐藏编辑器,您将获得代码
答案 3 :(得分:2)
上面的答案可能有效,但是通过像静态块一样加载小部件并使用魔术设置器传递自定义参数可以实现同样的目的:
<?php echo $this->getLayout()->createBlock('cms/widget_page_link')->setTemplate('cms/widget/link/link_block.phtml')->setPageId(2); ?>