magento2 如何给页面添加一个block

图片描述

在magento2首页,我图中红线框部分添加一个大标题以及4篇带图片的文章

阅读 4.9k
1 个回答

要修改magento2的布局需要有LAYOUT的基础知识
http://devdocs.magento.com/gu...

magento2每个页面都有多个container,你可以理解为空槽,它们都有固定位置,固定的前后次序。而block是放在container上的,你想在页面放一个block,要先搞明白三件事:

  1. 放在什么页面上

  2. 放在什么位置(container)上

  3. 放什么样的block

例如我想放一个静态内容BLOCK在首页,先要在后台建一个CMS block,它们的ID是ad。按照官方文档,我需要建一个module,并按页面名来命名这个LAYOUT。首页一般是cms_index_index,所以这个LAYOUT应该是:<module>/view/frontend/layout/cms_index_index.xml

因为我需要显示CMS block,所以我的BLOCK代码应该是这样的:

<block class="Magento\Cms\Block\Block" name="homepage_ad">
    <arguments>
        <argument name="block_id" xsi:type="string">ad</argument>
    </arguments>
</block>

magento2的default theme已经有固定的container,可见:https://segmentfault.com/a/11...
要把BLOCK加到指定的container,例如sidebar.additional,应该这样写:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="sidebar.additional">
            <block class="Magento\Cms\Block\Block" name="homepage_ad">
                <arguments>
                    <argument name="block_id" xsi:type="string">ad</argument>
                </arguments>
            </block>
        </referenceContainer>
    </body>
</page>

以上就是加一个BLOCK简单的过程。

推荐问题
宣传栏