Как показать статические блоки в Magento 2?


Я создаю тему magento 2. Я хочу отобразить пользовательские блоки на главной странице cms.

Я хочу знать, чтобы показать статические блоки в макете phtml и xml, содержимое страницы cms

Как я могу это сделать?

Author: Martin Wickman, 2015-09-17

4 answers

Пожалуйста, попробуйте использовать приведенные ниже коды.

В Файле Phtml:

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

В содержимом CMS:

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

В 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>
 33
Author: Dmitry, 2015-09-17 02:36:36

Вышесказанное верно, кроме того, xml-файл для домашней страницы находится cms_index_index.xml внутри папки Magento_Cms (и это должно быть в вашей собственной папке пакета/темы, а не в Magento/blank или app/code).

Просто поместите приведенный выше xml-код в тег <body> в этом файле, в зависимости от настроек кэша, вам может потребоваться очистить их, чтобы увидеть изменения.

 1
Author: Klaus De Buysser, 2016-03-23 11:49:08

Ни один из них не работает для размещения статических блоков через default.xml Пожалуйста, приведите соответствующие примеры. В 2.0.7, когда я применяю к своей теме следующее после создания статического блока в администрации с именем socialimg /socialimg в качестве идентификатора блока, ничего не отображается. и даже не в памяти. даже не поиск исключений.журнал или system.log

    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="header.panel">
            <block class="Magento\Framework\View\Element\Html\Links" name="header.links">
                <arguments>
                    <argument name="css_class" xsi:type="string">header links</argument>
                </arguments>
            </block>
        </referenceContainer>
<referenceBlock name="socialimg1">
    <block class="Magento\Cms\Block\Block" name="socialimg">
        <arguments>
          <argument name="block_id" xsi:type="string">socialimg</argument>
        </arguments>
    </block>
</referenceBlock>
        <referenceBlock name="logo">
            <arguments>
                <argument name="logo_img_width" xsi:type="number">148</argument>
                <argument name="logo_img_height" xsi:type="number">43</argument>
            </arguments>
        </referenceBlock>
        <referenceContainer name="footer">
            <block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" after="footer_links" template="switch/stores.phtml"/>
        </referenceContainer>
        <referenceBlock name="report.bugs" remove="true"/>
        <move element="copyright" destination="before.body.end"/>
    </body>
</page>
 1
Author: user5762246, 2016-07-03 21:48:20

Используйте следующий код для отображения статического блока на странице CMS -

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

Используйте следующий код для отображения статического блока в файле phtml -

<?php echo $block->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
 0
Author: Swapna Taru, 2016-06-27 08:56:51