Cuando leo la documentación sobre diseños de página ( http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html#layout-types-page ) veo que el Se permiten las siguientes instrucciones en este documento XML:
<container>
<referenceContainer>
<move>
<update>
Como <referenceBlock name="block.name" remove="true" />
no es una de las instrucciones permitidas, ¿cómo puedo eliminar un determinado elemento en un diseño de página específico?
Lo que quiero para las categorías principales es un diseño de página completamente diferente. No necesito ciertos contenedores y bloques para este diseño. Para estas categorías solo quiero mostrar categorías secundarias y no los productos.
Lo que hice ahora es agregar las siguientes líneas en el diseño de mi página: (in 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>
En el design\frontend\Vendor\Name-of-theme\Magento_Theme\layouts.xml
agregué:
<layout id="catalog-blocks">
<label translate="true">Catalog Blocks</label>
</layout>
Le di a todas las categorías principales este diseño de página de bloques de catálogo en el administrador.
Luego, en el diseño principal ( design\frontend\Vendor\Name-of-theme\Magento_Theme\layout\default.xml
), agregué:
<referenceBlock name="delete" remove="true" />
Entonces, todo el bloque de eliminación se eliminará, con todas las cosas que moví aquí, en el diseño de página. Esto funciona bien! Logra exactamente lo que quiero, pero todo esto me parece un poco hack.
¿Se considera esto una buena práctica? Si no, ¿cuál sería una buena alternativa?
Edición 1 : Cambié la remove
etiqueta en mi pregunta con la correcta para evitar confusiones.
Edición 2 : más información sobre los archivos y las ubicaciones de los archivos.