Как вызвать статический блок в левой боковой панели на странице в Magento 2

11

Как мы можем назвать статический блок в Magento 2 на странице. В Magento 1 мы имеем это со следующим кодом:

<reference name="left">
<block type="cms/block" name="Klantenservice menu" before="-">
    <action method="setBlockId"><block_id>cmsmenu</block_id></action>
</block>    
</reference>
Coen
источник

Ответы:

51

Если вы хотите вызвать статический блок на странице

Попробуйте код ниже:

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

Если вы хотите позвонить в phtml файл:

Попробуйте код ниже:

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

Ваш код XML-файла должен быть:

<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>

Наконец, если вы хотите вызвать phtml со своим блоком на странице cms:

Попробуйте код ниже:

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

Перейдите по этой ссылке для получения дополнительной информации - https://chetansanghani.wordpress.com/2015/11/20/magento2-display-static-block-in-phtml-file-cms-page/

Мантан Дэйв
источник
Спасибо за ответ, что бы я ни пытался на странице, я получаю следующую ошибку: «Пожалуйста, исправьте данные XML и повторите попытку. Элемент 'layout': Содержимое символов, отличное от пробелов, не допускается, потому что тип содержимого 'only-element' . Линия: 1 "Есть идеи?
Коэн
Проверка @Coen есть ли дополнительное место в вашем файле XML? или при запуске xml файла?
Мантан Дейв
да была запятая, теперь я нашел где-то еще ответ. Смотрите мой вопрос выше
Коэн
@Coen обновил ответ, пожалуйста, проверьте
Мантан Дейв
Спасибо, использует тот в файле XML и тот на странице cms
Коэн
8

Это должно работать:

<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>
Arunendra
источник
Где я должен положить этот XML?
Витало Бенисио
0

статический блок Над изображением вы можете увидеть мой идентификатор блока = "product_view_right_sidebar".

Вам нужно только заменить свой идентификатор блока ...

здесь мой идентификатор блока = "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>
Никунь Панчал
источник