Бувають випадки, коли вам потрібно відобразити CMS блок Magento 2 у файлі 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 блок має бути створений та ввімкнений.  Якщо блок CMS вимкнений або не створений, цей код не відображатиме жодного вмісту.

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

Отже, що ви можете зробити, це додати блок CMS до вашого блоку, використовуючи макет, використати цей код у відповідному файлі дескриптора 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 файлі за допомогою блочного методу (block method) getChildHtml:

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