Magento2 - วิธีการแสดงเนื้อหาบล็อกในหน้าแรก


14

จะแสดงเนื้อหาบล็อกในหน้าแรกได้อย่างไร?

หลังจากติดตั้ง magento2 โดยไม่มีข้อมูลตัวอย่างฉันเลือกชุดรูปแบบ 'Magento Luma' และเพิ่มบล็อก 'Home Page Block' และคัดลอกรหัสจากที่เก็บตัวอย่าง

แต่ไม่มีอะไรปรากฏขึ้นในหน้าแรกฉันจะแสดงบล็อก cms ของฉันในหน้าแรกเช่นที่เก็บตัวอย่างได้อย่างไร

บ้านของฉัน ป้อนคำอธิบายรูปภาพที่นี่

เก็บตัวอย่าง

ป้อนคำอธิบายรูปภาพที่นี่


คุณหมายถึงการแสดง cms บล็อกข้อความ / เนื้อหาหรือแผงผู้ดูแลระบบที่สร้าง cms บล็อกข้อความ / เนื้อหา
Bojjaiah

@magentotwo ฉันสร้างบล็อก cms ที่กำหนดเองฉันต้องการทราบวิธีการแสดง blcok นี้ในหน้าแรก
Moon

คุณได้ลองวิธีแก้ปัญหาด้านล่าง?
Bojjaiah

เนื้อหาโฮมเพจในข้อมูลตัวอย่างมาจากวิดเจ็ต

คำตอบ:


45

ในแผงผู้ดูแลระบบไปที่เนื้อหา -> หน้าและแก้ไขหน้าแรกและหากคุณสร้างบล็อกแบบคงที่ของคุณจากแผงผู้ดูแลระบบเพิ่มต่อไปนี้ไปที่แท็บเนื้อหา

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

และถ้าคุณสร้างบล็อกที่กำหนดเองโดยใช้โมดูลเพิ่มต่อไปนี้แท็บเนื้อหาหน้าแรก

{{block class="Vendor\ModuleName\Block\BlockName" template="Vendor_ModuleName::yourcustomblock.phtml"}} 

จากนั้นบันทึกการเปลี่ยนแปลงและล้างแคช magento และปรับใช้ / ลบเนื้อหาแบบคงที่ในขณะนี้รีเฟรชหน้าแรก

หากนี่ไม่ได้ผลให้ฉันรู้


มันใช้งานได้เหมือนมีเสน่ห์! ขอบคุณ Chamal มาก!
Moon

มีลิงค์ใดบ้างที่ฉันสามารถเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้? magento บล็อกคลาสและรหัสบล็อกสำหรับส่วนหน้า?
ดวงจันทร์

1
ฉันพบdevdocs.magento.com/guides/v2.0/howdoi/frontend/ ......นี่เป็นคำแนะนำที่ดีสำหรับการทำความเข้าใจกับสถาปัตยกรรม magento 2 block
Chamal Chamikara

จากโมดูลของcms_index_index.xmlฉันฉันเพิ่มสิ่งนี้ในเนื้อหาของหน้าแรก - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says แม่แบบการกรองข้อผิดพลาด: ไฟล์เทมเพลตไม่ถูกต้อง: 'Vendor_Module :: module.phtml' ในโมดูล: ชื่อบล็อกของ 'Vendor_Module': 'index_0'``
Slimshadddyyy

10

ลองนี่หรือมิฉะนั้นโพสต์รหัสของคุณจากนั้นเราจะแนะนำคุณที่คุณผิดพลาด

บล็อกไฟล์

<?php
namespace Learning\SmartSearch\Block;

class SmartSearch extends \Magento\Framework\View\Element\Template
{
    public function getTitle()
    {
        return "Smart Search";
    }
}

etc / module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Learning_SmartSearch" setup_version="1.0.0">
    </module>
</config>

ดู / รูปแบบ / cms_index_index.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Learning\SmartSearch\Block\SmartSearch" template="Learning_SmartSearch::html/cms.phtml"/>
        </referenceContainer>
    </body>
</page>

ดู / แม่ / html / cms.phtml

<h1><?php echo $block->getTitle(); ?></h1>

หลังจากสร้างแคชล้าง

ฉันหวังว่านี่จะช่วยคุณได้ หากคุณไม่ได้รับผลลัพธ์แจ้งให้เราทราบ


ขอบคุณสำหรับคำตอบ! ฉันจะลองใหม่ในภายหลังและแจ้งให้คุณทราบผลลัพธ์
Moon

3

ในหน้าแรกคุณสามารถเรียกบล็อกแบบคงที่ได้ตามวิธีที่ระบุไว้ด้านล่าง

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

ในหน้า html คุณสามารถเรียกบล็อกแบบคงที่ได้ตามวิธีที่ระบุไว้ด้านล่าง

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.