10

我需要在页脚中显示更多链接。我在 magento admin 中将这些链接创建为静态块(id = sample_links)。

然后我添加了以下代码 page.xml 文件

<reference name="foot_lnk">  
<block type="cms/block" name="sample_block" before="-">
      <action method="setBlockId"><block_id>sample_links</block_id></action>
    </block>
</reference>

我在footer.phtml中称这个为,

<?php echo $this->getChildHtml('foot_lnk') ?>

但它不显示 CMS 静态块内容。什么问题?

4

5 回答 5

20
$this->getLayout()->createBlock('cms/block')->setBlockId('my_static_block_name')->toHtml() 
于 2012-05-18T06:24:08.390 回答
14

引用是先前定义的块,您希望块位于其中,例如:

<reference name="footer">
  <block type="cms/block" name="sample_links">
    <action method="setBlockId"><block_id>sample_links</block_id></action>
  </block>
</reference>

然后

<?php echo $this->getChildHtml('sample_links') ?>
于 2012-05-18T08:25:20.437 回答
8

您可以调用一个静态块,如:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_identifier')->toHtml() ?>

并调用如下块:

<?php echo $this->getLayout()->createBlock('sidebar/left')->setTemplate('bannerslider/left.phtml')->tohtml(); ?>

访问magevn.com以查看更多在 magento 中使用块的用例。

于 2015-08-07T13:09:18.873 回答
4

如果您不想打扰 XML,就像 swapnesh 的回答一样,我只是让那里的 php noobs 更清楚(像我一样)

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_identifier')->toHtml() ?>

your_identifier 是您在 CMS > Blocks > Create New Block 中创建块时决定使用的代码,第二行称为“标识符”

于 2015-01-22T16:34:30.367 回答
0

将您的参考名称更改为页脚

<reference name="footer">  

那么它将起作用。

于 2016-06-27T09:20:19.510 回答