Як викликати блок CMS у PHTML-файлі Magento 2?

Гнучкість Magento дозволяє відображати блоки CMS безліччю способів. Однак, для тих, хто має технічні знання, є лише два варіанти.

Ви можете або викликати блоки CMS у макеті XML , або викликати їх у PHTML-файлі. Сьогодні ми зосередимося на другому варіанті.

Виклик блоку CMS у PHTML-файлі

Щоб програмно викликати блок CMS у файлі шаблону .phtml, використовуйте цей код:

<?php
    echo $this->getLayout()
        ->createBlock(\Magento\Cms\Block\Block::class)
        ->setBlockId('my_cmsblock_identifier') //replace my_cmsblock_identifier with real CMS bock identifier
        ->toHtml();
?>

Примітка: вам потрібно створити блок CMS у Magento , щоб цей метод працював. Якщо блок CMS вимкнено або не існує, цей код не відображатиме жодного вмісту.

Використання методу createBlock є швидким, але не ідеальним з точки зору найкращих практик.

Отже, ви можете додати блок CMS до вашого блоку за допомогою layout. Використовуйте наступний код у відповідному XML-файлі дескриптора макета та не забудьте очистити кеш Magento після зміни макета: 

<referenceBlock name="my-main-phtml-block">
    <block class="Magento\Cms\Block\Block" name="my-main-phtml-block-cms">
        <arguments>
            <argument name="block_id" xsi:type="string">my_cmsblock_identifier</argument>
        </arguments>
    </block>
</referenceBlock>

Відобразіть його у PHTML-файлі за допомогою методу блоку getChildHtml :

<?= $block->getChildHtml('my-main-phtml-block-cms') ?>

Динамічне відображення блоків CMS

Додавання блоків CMS на сторінку – це одне. Постійне вмикання, вимикання та зміна блоків у PHTML-файлі – це зовсім інше. 

Щоб зменшити ручну роботу та оптимізувати процес, ви можете просто вказати дати, коли блок має бути активним. Динамічні блоки Magento 2 автоматично вмикатиме та вимикатиме блоки вашої CMS відповідно до налаштувань.

 дата динамічних блоків Magento