web-dev-qa-db-ja.com

Magento 2で静的ブロックを表示するにはどうすればよいですか?

Magento 2テーマを作成しています。カスタムブロックをcmsホームページに表示したい。

静的ブロックをphtmlおよびxmlレイアウト、cmsページのコンテンツで表示する方法を知りたい

どのようにできるのか?

11
John

以下のコードを使用してみてください。

Phtmlファイル:

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

cMSコンテンツ:

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

Xmlファイル:

<referenceContainer name="content">
    <block class="Magento\Cms\Block\Block" name="block_identifier">
        <arguments>
            <argument name="block_id" xsi:type="string">block_identifier</argument>
        </arguments>
    </block>
</referenceContainer>
36
Mike

default.xmlを介して静的ブロックを配置するためのこれらの機能はありません。適切な例を送信してください。 2.0.7でテーマに適用すると、管理でsocialimg/socialimgという名前の静的ブロックをブロック識別子として作成した後、何も表示されません。また、メモリにも。 exception.logまたはsystem.logの検索すらありません

    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="header.panel">
            <block class="Magento\Framework\View\Element\Html\Links" name="header.links">
                <arguments>
                    <argument name="css_class" xsi:type="string">header links</argument>
                </arguments>
            </block>
        </referenceContainer>
<referenceBlock name="socialimg1">
    <block class="Magento\Cms\Block\Block" name="socialimg">
        <arguments>
          <argument name="block_id" xsi:type="string">socialimg</argument>
        </arguments>
    </block>
</referenceBlock>
        <referenceBlock name="logo">
            <arguments>
                <argument name="logo_img_width" xsi:type="number">148</argument>
                <argument name="logo_img_height" xsi:type="number">43</argument>
            </arguments>
        </referenceBlock>
        <referenceContainer name="footer">
            <block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" after="footer_links" template="switch/stores.phtml"/>
        </referenceContainer>
        <referenceBlock name="report.bugs" remove="true"/>
        <move element="copyright" destination="before.body.end"/>
    </body>
</page>
1
user5762246

上記は正しいです。さらに、ホームページのxmlファイルはcms_index_index.xmlフォルダー内のMagento_Cmsです(これは、Magento/blankまたはapp/codeではなく、独自のパッケージ/テーマフォルダーに配置する必要があります)。

上記のxmlコードをそのファイルの<body>タグ内に配置するだけです。調整を確認するには、キャッシュ設定をクリアする必要がある場合があります。

1

CMSページに静的ブロックを表示するには、次のコードを使用します-

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

次のコードを使用して、静的ブロックをphtmlファイルに表示します-

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