Cách gọi khối tĩnh trong thanh bên trái trong một trang trong Magento 2


11

Làm thế nào chúng ta có thể gọi một khối tĩnh trong Magento 2 trong một trang. Trong Magento 1 chúng ta có mã này với đoạn mã sau:

<reference name="left">
<block type="cms/block" name="Klantenservice menu" before="-">
    <action method="setBlockId"><block_id>cmsmenu</block_id></action>
</block>    
</reference>

Câu trả lời:


51

Nếu bạn muốn gọi khối tĩnh trong trang

Hãy thử mã dưới đây:

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

Nếu bạn muốn gọi trong tệp phtml:

Hãy thử mã dưới đây:

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

Mã tệp xml của bạn phải là:

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

Cuối cùng nếu bạn muốn gọi phtml với khối của bạn trong trang cms:

Hãy thử mã dưới đây:

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

Tham khảo liên kết này để biết thêm chi tiết - https://chetansanghani.wordpress.com/2015/11/20/magento2-display-static-block-in-phtml-file-cms-page/


Cảm ơn đã trả lời, bất cứ điều gì tôi thử trong một trang tôi đều gặp phải lỗi sau: "Vui lòng sửa dữ liệu XML và thử lại. Phần tử 'layout': Nội dung ký tự không phải khoảng trắng không được phép vì loại nội dung là 'chỉ phần tử' Dòng: 1 "Có ý kiến ​​gì không?
Coen

Kiểm tra @Coen có thêm dung lượng trong tệp xml của bạn không? hoặc lúc bắt đầu tập tin xml?
Manthan Dave

vâng, có một dấu phẩy, bây giờ tôi tìm thấy một câu trả lời khác. Xem câu hỏi của tôi ở trên
Coen

@Coen đã cập nhật câu trả lời, vui lòng kiểm tra
Manthan Dave

Cảm ơn, sử dụng một trong tệp xml và trang đó bằng một cms
Coen

8

Điều này sẽ làm việc:

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

Tôi nên đặt xml này ở đâu?
Witalo Benermo

0

Khối tĩnh Trên hình ảnh bạn có thể thấy định danh khối của tôi = "sản phẩm_view_right_sidebar".

Bạn chỉ cần thay thế bằng mã định danh khối ...

ở đây, định danh khối của tôi = "sản phẩm_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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.