ホームページ専用のphtmlファイルを読み込む方法は?(マジェント2)


7

私はこのようなphtmlファイルをロードしようとしています:

ファイル /app/design/frontend/name/themename/Magento_Theme/layout/default.xml

    <referenceContainer name="page.top">
        <block class="Magento\Framework\View\Element\Template" name="startphoto" template="html/startphotos.phtml">
            <arguments>
                <argument name="section" xsi:type="string">homepage</argument>
                <argument name="position" xsi:type="number">0</argument>
            </arguments>
        </block>
    </referenceContainer>

ホームページにのみロードしたいのですが、すべてのページにロードされます。引数は無視されているようです。

回答:


23

あたりとして、Magento2は、default.xmlでこのコードを追加し、すべてのpage.Ifでコールされdefault.xml、それが自動的にあなたの現在のテーマのすべてのページを呼び出すことになります。

あなたが知っている場合は、Magentoの1.1ハンドラの概念、あなたはそれが理解できるdefaultハンドルである すべてのページで呼ばれている .IN Magentoの2.X、eは非常にハンドラ個々のレイアウトファイルです。

したがって、ホームページでのみphtmlファイルを追加する場合は、ホームでのみ呼び出されるハンドラーであるため、cms_index_index.xml/app/design/frontend/name/themename/Magento_Cms/layout/cms_index_index.xml)レイアウトファイルにそのコードを追加する必要があります。cms_index_index


モジュールXMLファイルのみを使用して製品ページでカスタマイズモジュールを呼び出す必要がある場合、どのようにすればよいですか?catalog_product_view.xmlファイルを変更せずにカートボタンに追加する前にリンクされたダウンロードの追加のように。
Hitesh Vaghasiya 2017

カスタムモジュールを作成した場合catalog_product_view.xmlは、app\code\[vendorname]\[ModuleName]view\frontend\layout*で作成 してください
Amit Bera

8

あなたは、このタスクを実行するためにXMLを使用することができます
内側にcms_index_index.xmlこのようプットXML

<referenceContainer name="content">
        <container name="block.container" htmlTag="div" htmlId="slider.container" htmlClass="block-home-container" before="">
            <block class="Magento\Framework\View\Element\Template" name="block.banner" as="block.custom.cms" template="Magento_Theme::block.phtml" after="-" />
        </container>
</referenceContainer>

5

でXMLファイル名を作成する /app/design/frontend/Vendor/theme/Magento_Theme/layout/cms_index_index.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
   <referenceContainer name="page.top">
     <block class="Magento\Framework\View\Element\Template" name="startphoto" template="Magento_Theme::html/startphotos.phtml">
        <arguments>
            <argument name="section" xsi:type="string">homepage</argument>
            <argument name="position" xsi:type="number">0</argument>
        </arguments>
     </block>
  </referenceContainer>         
</page>

2
xmlファイルのパスを含めると、回答がさらに改善されます。ありがとう
Mujahidh

このXMLファイルを次のように使用する場合、XMLファイルhtml/startphotos.phtml と比較してどこにありますか?わかりません。
Alex Timmer

1
更新された回答確認してください
Prashant Valanda
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.