Magento2 - Cách hiển thị nội dung khối trên trang chủ


14

Làm thế nào để hiển thị một nội dung khối trên trang chủ?

Sau khi cài đặt magento2 mà không có dữ liệu mẫu, tôi đã chọn chủ đề 'Magento Luma' và thêm khối Block Trang chủ 'và sao chép mã từ cửa hàng mẫu.

nhưng không có gì hiển thị trên trang chủ, làm thế nào để hiển thị khối cms của tôi trên trang chủ như cửa hàng mẫu?

nhà của tôi nhập mô tả hình ảnh ở đây

cửa hàng mẫu

nhập mô tả hình ảnh ở đây


Bạn có nghĩa là hiển thị cms khối văn bản / nội dung hoặc bảng quản trị đã tạo cms chặn văn bản / nội dung?
Bojjaiah

@magentotwo Tôi tạo một khối cms tùy chỉnh Tôi muốn biết cách hiển thị blcok này trên trang chủ
Moon

Bạn đã thử giải pháp dưới đây?
Bojjaiah

Nội dung trang chủ trong dữ liệu mẫu đến từ các widget.

Câu trả lời:


45

trong bảng quản trị, đi đến Nội dung-> Trang và chỉnh sửa trang chủ và nếu bạn đã tạo khối tĩnh từ bảng quản trị viên, hãy thêm vào tab Nội dung

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

và nếu bạn đã tạo một khối tùy chỉnh bằng cách sử dụng một mô-đun thêm sau vào tab nội dung trang chủ

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

sau đó lưu các thay đổi và xóa bộ đệm magento và triển khai / xóa nội dung tĩnh bây giờ làm mới trang chủ.

Nếu điều này không hiệu quả hãy cho tôi biết


Nó hoạt động như một say mê! Cảm ơn rất nhiều Chamal!
Mặt trăng

Có liên kết nào tôi có thể tìm hiểu thêm về điều này? lớp khối magento và mã id khối cho front-end?
Mặt trăng

1
Tôi tìm thấy devdocs.magento.com/guides/v2.0/howdoi/frontend/, đây là một hướng dẫn tốt để hiểu kiến ​​trúc khối magento 2
Chamal Chamikara

Từ mô-đun của cms_index_index.xmltôi, tôi đã thêm phần này vào nội dung Trang chủ - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Mẫu lọc lỗi: Tệp mẫu không hợp lệ: 'Vendor_Module :: module.phtml' trong mô-đun: 'Tên của nhà cung cấp Vendor_Module': 'index_0'``
Slimshadddyyy

10

Hãy thử điều này hoặc cách khác gửi mã của bạn sau đó chúng tôi sẽ đề nghị bạn đã sai ở đâu.

Chặn tập tin

<?php
namespace Learning\SmartSearch\Block;

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

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

xem / layout / 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>

xem / mẫu / html / cms.phtml

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

sau khi tạo bộ đệm tuôn ra.

Tôi hy vọng điều này sẽ giúp bạn. Nếu bạn không nhận được kết quả cho tôi biết.


Cảm ơn về câu trả lời của bạn! Tôi sẽ thử sau và cho bạn biết kết quả
Moon

3

Trong trang chủ, bạn có thể gọi khối tĩnh như cách được đề cập dưới đây

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

Trong trang html, bạn có thể gọi khối tĩnh như cách được đề cập dưới đây.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
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.