Magento2-ホームページにブロックコンテンツを表示する方法


14

ホームページにブロックコンテンツを表示する方法は?

サンプルデータなしでmagento2をインストールした後、「Magento Luma」テーマを選択し、「Home Page Block」ブロックを追加して、サンプルストアからコードをコピーしました。

しかし、ホームページには何も表示されません、サンプルストアのようにホームページに私のcmsブロックを表示する方法は?

私の家 ここに画像の説明を入力してください

サンプルストア

ここに画像の説明を入力してください


カスタムのcmsブロックテキスト/コンテンツを表示するのか、管理パネルで作成されたcmsブロックテキスト/コンテンツを表示するのですか?
ボイジャー

@magentotwoカスタムcmsブロックを作成しますホームページにこのblcokを表示する方法を知りたい

以下の解決策を試しましたか?
ボイジャー

サンプルデータのホームページコンテンツはウィジェットから取得されます。

回答:


45

管理パネルで[コンテンツ]-> [ページ]に移動し、ホームページを編集します。管理パネルから静的ブロックを作成した場合は、[コンテンツ]タブに以下を追加します

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

モジュールを使用してカスタムブロックを作成した場合、ホームページのコンテンツタブに以下を追加します

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

次に、変更を保存してmagentoキャッシュをフラッシュし、静的コンテンツを展開/削除してホームページを更新します。

これがうまくいかなかった場合、私に知らせてください


それは魅力のように機能します!本当にありがとう、チャマル!

これについて詳しく知るためのリンクはありますか?フロントエンドのmagentoブロッククラスとブロックIDコード?

1
devdocs.magento.com/guides/v2.0/howdoi/frontend / ...を見つけましたこれはmagento 2ブロックアーキテクチャを理解するための良いガイドです
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>

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

view / templates / html / cms.phtml

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

フラッシュキャッシュを作成した後。

これがあなたのお役に立てば幸いです。結果が得られない場合はお知らせください。


ご回答ありがとうございます!後で試して結果をお知らせします

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.