Magento 2: Chame um bloco estático usando xml

20

Como eu incluo um bloco estático em uma página usando xml. Por exemplo, eu criei um bloco estático com identificador promocional. No magento 1, incluímos um bloco estático usando o código abaixo

     <block type="cms/block" name="Promo">
          <action method="setBlockId"><block_id>promo</block_id></action>
     </block> 

Eu quero fazer exatamente o mesmo no magento 2

Shaheer Ali
fonte
você pode seguir este blog.belvg.com/…
matinict

Respostas:

49
<block class="Magento\Cms\Block\Block" name="Promo">
    <arguments>
        <argument name="block_id" xsi:type="string">promo</argument>
    </arguments>
</block>

Isso é equivalente a M1.

KAndy
fonte
@ Ben-Space48, concorda #
KAndy
32

As instruções xml corretas para a versão atual do Magento2 devem ser:

<block class="Magento\Cms\Block\Block" name="Promo">
    <arguments>
        <argument name="block_id" xsi:type="string">promo</argument>
    </arguments>
</block>

Espero que isto ajude!

Valerio Masciotta
fonte
13

Experimente o código abaixo.

Chamada do arquivo phtml:

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

Ligue da página ou bloco cms:

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

Chamada do arquivo XML:

<referenceContainer name="content">
    <block class="Magento\Cms\Block\Block" name="block_identifier">
        <arguments>
            <argument name="block_id" xsi:type="string">block_identifier</argument>
        </arguments>
    </block>
</referenceContainer>

Espero que isso ajude você!

Makwana Ketan
fonte
5

A chamada do arquivo Xml funcionou. Altere o "block_identifier" do bloco CMS criado no painel magento e adicione-o ao layout.xml

<referenceContainer name="footer">
       <block class="Magento\Cms\Block\Block" name="block_identifier">
            <arguments>
                <argument name="block_id" xsi:type="string">block_identifier</argument>
            </arguments>
        </block>
    </referenceContainer>
Bhanu Gupta
fonte
3

Experimente o código abaixo:

<block class="Magento\Cms\Block\Block" name="news">
    <arguments>
        <argument name="block_id" xsi:type="string">news</argument>
    </arguments>
</block>

Funciona para mim, espero que ajude!

trusha
fonte
esse código funciona para mim também
Amol Bhandari SJ 19/11
1
 <referenceContainer name="content">
      <block class="Magento\Cms\Block\Block" name="daily_deals" template="bigbazaar.phtml">
        <arguments>
            <argument name="block_id" xsi:type="string">daily_deals</argument>
        </arguments>
    </block>
 </referenceContainer>

Aqui daily_dealsestá o nome do meu identificador de bloco do CMS. Eu gostaria que funcionasse ..

Dhaval Mistry
fonte
1

bloco estático Acima da imagem, você pode ver meu identificador de bloco = "product_view_right_sidebar". adicione o código abaixo ao seu arquivo xml

<referenceContainer name="content">
    <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>
Nikunj Panchal
fonte