ページレイアウトに関するドキュメント(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" />
許可された手順の1つではないので、特定のページレイアウトの特定の要素を削除するにはどうすればよいですか?
私がトップカテゴリーに欲しいのは、まったく別のページデザインです。このデザインでは、特定のコンテナやブロックは必要ありません。これらのカテゴリでは、製品ではなく子カテゴリのみを表示します。
私が今やったことは、私のページレイアウトに次の行を追加することです:(で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
I addded:
<layout id="catalog-blocks">
<label translate="true">Catalog Blocks</label>
</layout>
私はすべてのトップカテゴリーにこのカタログブロックのページレイアウトを管理者に与えました。
次に、メインレイアウト(design\frontend\Vendor\Name-of-theme\Magento_Theme\layout\default.xml
)に追加しました:
<referenceBlock name="delete" remove="true" />
したがって、ページレイアウトで、私がここに移動したすべてのものとともに、削除ブロック全体が削除されます。これはうまくいきます!それは私が望むものを正確に達成しますが、全体としては少しハックに思えます。
これは良い習慣と考えられますか?そうでない場合、良い代替手段は何でしょうか?
編集1:remove
混乱を避けるために、質問の- タグを正しいものに変更しました。
編集2:ファイルとファイルの場所に関するいくつかの詳細情報。