重写一个布局(Layout)
这篇文章讲什么?
不是所有的布局定制可以由 扩展现有的布局。 如果自定义的量大,你可以使用重写函数所需的布局文件。 这意味着在主题中放置的新文件将代替父主题 布局文件 基本 layout file布局文件.
本文中,页面布局, 页面配置, 和 通用布局 被称为“布局文件”,因为它们的重写机制类似于所有的文件。
怎样重写一个布局(Layout)
本节讨论如何重写:
- 基地布局
- 主题布局
覆盖基础布局
添加一个重写的基础布局文件(覆盖模块提供的基本布局):
- 在下列位置放置相同名称的布局文件:
<theme_dir> |__/<Namespace_Module> |__/layout |__/override |__/base |--<layout1>.xml |--<layout2>.xml
这些文件覆盖以下布局:
<module_dir>/view/frontend/layout/<layout1>.xml
<module_dir>/view/frontend/layout/<layout2>.xml
重写主题布局
添加一个重写主题文件(覆盖父主题布局):
- 在下列位置放置相同名称的布局文件:
<theme_dir> |__/<Namespace_Module> |__/layout |__/override |__/theme |__/<Parent_Vendor> |__/<parent_theme> |--<layout1>.xml |--<layout2>.xml
这些文件覆盖以下布局:
<parent_theme_dir>/<Namespace>_<Module>/layout/<layout1>.xml
<parent_theme_dir>/<Namespace>_<Module>/layout/<layout1>.xml
重写页面布局文件,使用“page_layout目录名称代替“布局”
定制的错误
虽然布局重写机制提供了极大的定制灵活性,但可以使用它来添加逻辑上无关的更改。我们强烈建议您不要做以下更改:
- 更改块名或别名。不应改变块的名称,也不应在同一父元素中保留块的别名。
- 改变句柄继承。例如,不应更改页类型父句柄。
相关话题:
- 布局(Layout)扩展
- 创建一个主题
- 布局(Layout)说明