当我阅读有关页面布局的文档(http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html#layout-types-page)时,允许以下XML文档中的说明:
<container>
<referenceContainer>
<move>
<update>
由于<referenceBlock name="block.name" remove="true" />
不是允许的指令之一,我如何才能删除特定页面布局中的某个元素?
我想要的顶级类别是整个其他页面设计。我不需要某些容器和块来进行此设计。对于这些类别,我只想显示子类别,而不是产品。
我现在要做的是,在页面布局中添加了以下几行:(在中design\frontend\Vendor\Name-of-theme\Magento_Theme\page_layout\catalog-blocks.xml
)
<move element="category.image" destination="delete"></move>
<move element="category.description" destination="delete"></move>
<move element="category.products" destination="delete"></move>
<move element="page.main.title" destination="delete"></move>
在design\frontend\Vendor\Name-of-theme\Magento_Theme\layouts.xml
我补充说:
<layout id="catalog-blocks">
<label translate="true">Catalog Blocks</label>
</layout>
我在admin中为所有顶级类别提供了此目录块页面布局。
然后在主布局(design\frontend\Vendor\Name-of-theme\Magento_Theme\layout\default.xml
)中添加:
<referenceBlock name="delete" remove="true" />
因此,整个删除块都将被删除,而所有我搬到这里的东西都将在页面布局中删除。这很好用!它完全达到了我想要的目的,但是整个事情在我看来似乎有些破绽。
这被认为是一种好习惯吗?如果没有,那么什么是不错的选择?
编辑1:更改了remove
我的问题中的-tag,使用了正确的标签以避免混淆。
编辑2:有关文件和文件位置的更多信息。