【问题标题】:Magento Shortcode CMS block not working on product pagesMagento Shortcode CMS 块在产品页面上不起作用
【发布时间】:2013-05-05 17:00:48
【问题描述】:

我正在尝试在 Magento 产品页面上添加 CMS 块。

我使用的简码是:

{{block type="cms/block" block_id="myproductblock"}}

块显示为文本。它不会插入 CMS 块。我已确保禁用 WYSIWYG 编辑器。

【问题讨论】:

  • 我想你必须写{{block id="myproductblock"}}

标签: magento block


【解决方案1】:

我假设你想将它添加到 product.phtml

为此,您需要编辑 layout/catalog.xml

...
<catalog_product_view>
..
...
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
    <!-- start your code: -->
    <block type="cms/block" name="myproductblock" before="-">
        <action method="setBlockId"><block_id>myproductblock</block_id></action>
    </block>

然后在 view.phtml 中编写:

<?php echo $this->getChildHtml("myproductblock") ?>

“myproductblock”与您在 layout.xml 中指定的名称相同

在此之后,您必须清除 layout.xml 缓存,它应该可以工作:)


为什么您的代码不起作用: 这些 .phtml 文件都是 php 脚本。“{{”和“}}”必须由模板引擎解释,并且仅在电子邮件、CMS 页面/块和后端的所见即所得编辑器中有效。

【讨论】:

  • 感谢您的信息。根据您的回答,我似乎只能在产品页面上显示 1 个命名块。有没有办法在产品页面上定义块名称,例如,如果我想为不同的产品设置不同的块名称。
  • 您也可以使用以下代码绕过编辑 layout.xml:getLayout()->createBlock('cms/block')->setBlockId('myproductblock' )->toHtml() ?> 所以如果你这样做它会起作用: getLayout()->createBlock('cms/block')->setBlockId('product_'.$_product-> getSku())->toHtml() ?> 然后,如果您想要 sku=123 的产品的特定块,您可以在后端添加“product_123”作为块 ID。我希望这会有所帮助:) PS:抱歉格式化 - 我认为不应该在 cmets 中添加代码^^
猜你喜欢
  • 2016-04-05
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多