Como chamar um bloco estático na barra lateral esquerda em uma página no Magento 2


11

Como podemos chamar um bloco estático no Magento 2 em uma página. No Magento 1, temos isso com o seguinte código:

<reference name="left">
<block type="cms/block" name="Klantenservice menu" before="-">
    <action method="setBlockId"><block_id>cmsmenu</block_id></action>
</block>    
</reference>

Respostas:


51

Se você deseja chamar o bloco estático na página

Experimente o código abaixo:

{{block class="Magento\\Cms\\Block\\Block" block_id="block_identifier"}}

Se você deseja chamar no arquivo phtml:

Experimente o código abaixo:

<?php echo $block->getLayout()->createBlock(\Magento\Cms\Block\Block::class)->setBlockId('block_identifier')->toHtml();?>

Seu código de arquivo xml deve ser:

<referenceContainer name="sidebar.additional">
   <block class="Magento\Cms\Block\Block" name="yourblockid">
       <arguments>
            <argument name="block_id" xsi:type="string">yourblockid</argument>
       </arguments>
   </block>
</referenceContainer>

Finalmente, se você quiser chamar phtml com seu bloco na página cms:

Experimente o código abaixo:

{{block class="Magento\Modulename\Block\Blockname" template="Magento_Modulename::templatefilename.phtml"}} 

Consulte este link para obter mais detalhes - https://chetansanghani.wordpress.com/2015/11/20/magento2-display-static-block-in-phtml-file-cms-page/


Obrigado pela resposta, seja o que for que eu tente em uma página, obtenho o seguinte erro: "Corrija os dados XML e tente novamente. Elemento 'layout': Conteúdo de caractere diferente de espaço em branco não é permitido porque o tipo de conteúdo é 'apenas elemento' Linha: 1 "Alguma idéia?
Coen

@Coen check: existe algum espaço extra no seu arquivo xml? ou no início do arquivo xml?
precisa saber é o seguinte

sim, havia uma vírgula, agora encontrei em outro lugar a resposta. Veja minha pergunta acima
Coen

@Coen atualizou a resposta, verifique #
Manthan Dave

Obrigado, usa o que está no arquivo xml e aquele por uma página cms
Coen

8

Isso deve funcionar:

<referenceContainer name="sidebar.additional">
   <block class="Magento\Cms\Block\Block" name="yourblockid">
       <arguments>
            <argument name="block_id" xsi:type="string">yourblockid</argument>
       </arguments>
   </block>
</referenceContainer>

Onde devo colocar esse xml?
Witalo Benicio 19/12/19

0

bloco estático Acima da imagem, você pode ver meu identificador de bloco = "product_view_right_sidebar".

Você precisa substituir apenas pelo seu identificador de bloco ...

aqui, meu identificador de bloco = "product_view_right_sidebar" == "Your_block_identifier"

<referenceContainer name="sidebar.additional">
    <block class="Magento\Cms\Block\Block" name="product_view_right_sidebar">
        <arguments>
                <argument name="block_id" xsi:type="string">product_view_right_sidebar</argument>
        </arguments>
    </block>
</referenceContainer>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.