Desenvolvimento Magento 2

Layout XML do Magento 2: remover bloco de módulo de terceiro

Instalou um módulo de terceiro e ele plantou um banner de promoção no topo de todas as páginas. O resto do módulo funciona e você não quer desinstalar, quer só sumir com aquele bloco. Uma linha de layout XML dentro do seu tema resolve, sem encostar em nada dentro de vendor/.

Primeiro descubra o nome do bloco

Sem o nome exato você não remove nada. Ligue os hints numa cópia de homologação: deploy:mode:set developer limpa cache e conteúdo estático gerado, então não rode isso na loja que está vendendo.

sudo -u www-data bin/magento deploy:mode:set developer
sudo -u www-data bin/magento config:set dev/debug/template_hints_storefront 1
sudo -u www-data bin/magento config:set dev/debug/template_hints_blocks 1
sudo -u www-data bin/magento cache:flush

Recarregue a loja: cada caixa vermelha passa a mostrar o template e o nome do bloco, algo como fornecedor.promo.banner. É esse nome que vai para o XML.

O remove no layout do tema

Crie o arquivo app/design/frontend/SuaVendor/seutema/Magento_Theme/layout/default.xml:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="fornecedor.promo.banner" remove="true"/>
    </body>
</page>

Depois é só limpar: bin/magento cache:clean layout block_html full_page. O default.xml pega o site inteiro; se o banner só aparece na página do produto, o arquivo certo é catalog_product_view.xml e o efeito fica restrito ali.

remove=”true” não é display=”false”

Aqui mora a pegadinha que já me custou uma tarde. O remove tira o bloco e todos os filhos dele da árvore de layout: a classe nem chega a ser instanciada, então some junto qualquer consulta ao banco que aquele bloco fazia. O display=”false” mantém o bloco montado e só não imprime a saída, o que serve quando outro bloco depende dele.

A remoção é aplicada depois do merge de todos os layouts, então referenciar o bloco em outro arquivo não traz ele de volta: para reverter, apague o seu referenceBlock (ou troque para remove=”false”) e limpe o cache. Terminou de caçar o nome? Devolva os dois config:set para 0, rode cache:flush e volte a loja para production mode.

Post Recentes

Restaurar dump do Magento 2 em outro servidor: trocar a base_url no SQL

Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…

24 horas atrás

Criar exceção customizada em PHP: quando estender Exception compensa

Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…

2 dias atrás

DataProvider Magento 2: form do admin abre com campos vazios ao editar

O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…

3 dias atrás

register_post_meta com show_in_rest: campo personalizado no /wp-json

O meta está no banco mas some do /wp-json/wp/v2/posts. Veja o register_post_meta certo, com single, type, schema de array e…

3 dias atrás

IntlDateFormatter: data por extenso em pt-BR sem array de meses

Escreva 31 de agosto de 2026 em PHP 8.3 sem aquele array com os doze meses, usando IntlDateFormatter com pattern…

4 dias atrás

wp_postmeta lento: índice em meta_key e meta_value para meta_query

Listagem de CPT com meta_query que demora segundos: veja o EXPLAIN da query do WP_Query e o índice composto em…

6 dias atrás