Magento 2 – jak wyświetlić blok CMS w pliku PHTML

W Magento 2 bloki CMS najczęściej używane są bezpośrednio w layoutach XML, jednak czasami zachodzi potrzeba wyświetlenia bloku CMS bezpośrednio w pliku PHTML np. przy warunkowej logice. W tym wpisie przybliżymy jak poprawnie wywołać blok CMS w plikach .phtml.

Wyświetlanie bloku CMS w .phtml

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

W miejscu „id_bloku_cms” podajemy ID bloku statycznego CMS. Ważne – wprowadzamy identyfikator ustalony po stronie panelu, nie ID z bazy danych.

Wywołanie bloku CMS na stronie CMS

Jeśli blok CMS ma być użyty wewnątrz treści strony CMS, należy skorzystać z dyrektywy:

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

Wywołanie statycznego bloku CMS za pomocą pliku xml

<referenceContainer name="product.info.main"> 
    <block class="Magento\Cms\Block\Block" name="block_identifier"> 
        <arguments> 
            <argument name="block_id" xsi:type="string">id_bloku</argument> 
        </arguments> 
    </block> 
</referenceContainer>
Czy można wywołać blok CMS warunkowo?

Tak. W pliku .phtml możesz dodać dowolną logikę PHP np. sprawdzenie: typu produktu, danej cechy produktu, atrybutu klienta itd.).

Czy to rozwiązanie działa w Magento 2.4.x?

Tak. Wszystkie opisane metody są zgodne z każdą wersją Magento 2.

Dlaczego zamiast statycznego HTMLa warto użyć bloku CMS?

Ponieważ treść umieszczona w bloku CMS nie wymaga deployu kodu po zmianie i może być dowolnie modyfikowana przez administratora (bezpośrednio z poziomu panelu).

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *