php - magento2 如何给页面添加一个block

查看:523
本文介绍了php - magento2 如何给页面添加一个block的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

要修改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简单的过程。

这篇关于php - magento2 如何给页面添加一个block的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆