วิธีการเรียกบล็อกแบบคงที่ในแถบด้านข้างซ้ายในหน้าใน Magento 2


11

เราจะเรียกบล็อกแบบคงที่ใน Magento 2 ในหน้าได้อย่างไร ใน Magento 1 เรามีสิ่งนี้ด้วยรหัสต่อไปนี้:

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

คำตอบ:


51

หากคุณต้องการเรียกบล็อกคงที่ในหน้า

ลองรหัสด้านล่าง:

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

หากคุณต้องการโทรในไฟล์ phtml:

ลองรหัสด้านล่าง:

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

รหัสไฟล์ xml ของคุณควรเป็น:

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

ที่ Last ถ้าคุณต้องการเรียก phtml พร้อมหน้าบล็อคของคุณเป็น cms:

ลองรหัสด้านล่าง:

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

อ้างถึงลิงค์นี้สำหรับรายละเอียดเพิ่มเติม - https://chetansanghani.wordpress.com/2015/11/20/magento2-display-static-block-in-phtml-file-cms-page/


ขอบคุณสำหรับการตอบกลับสิ่งที่ฉันลองในหน้าฉันได้รับข้อผิดพลาดต่อไปนี้: "โปรดแก้ไขข้อมูล XML แล้วลองอีกครั้งองค์ประกอบ 'เลย์เอาต์': เนื้อหาตัวละครอื่นนอกเหนือจากช่องว่างไม่ได้รับอนุญาตเพราะประเภทเนื้อหาเป็น 'องค์ประกอบเท่านั้น' Line: 1 "ความคิดใด ๆ
Coen

@ ตรวจสอบว่ามีพื้นที่พิเศษในไฟล์ xml ของคุณหรือไม่ หรือที่เริ่มต้นของไฟล์ xml
Manthan Dave

ใช่มีเครื่องหมายจุลภาคตอนนี้ฉันพบคำตอบที่อื่น ดูคำถามของฉันด้านบน
Coen

@Cen อัพเดทคำตอบโปรดตรวจสอบ
Manthan Dave

ขอขอบคุณใช้สิ่งนี้ในไฟล์ xml และอีกอันหนึ่งโดยหน้า cms
Coen

8

สิ่งนี้น่าจะใช้ได้:

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

ฉันควรใส่ xml นี้ไว้ที่ไหน?
Witalo Benicio

0

บล็อกแบบคงที่ ภาพด้านบนคุณสามารถเห็นตัวระบุบล็อกของฉัน = "product_view_right_sidebar"

คุณต้องแทนที่ด้วยตัวระบุบล็อกของคุณเท่านั้น ...

ที่นี่ตัวระบุบล็อกของฉัน = "product_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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.