Magento 2で.phtmlファイルをオーバーライドする方法


15

製品の詳細ページをカスタマイズしたいので、次の場所にあるいくつかの.phtmlファイルをオーバーライドする必要がありました。

だから、私は知りたい、または.phtmlファイルをオーバーライドする方法vendor\magento\module-catalog\view\frontend\templates\productvendor\magento\module-theme\view

回答:


23

既存のテンプレートを変更する必要がある場合があります。既存のテンプレートファイルを直接変更する代わりに、独自のテーマでそれらをオーバーライドする必要があります。カテゴリ一覧ページ(list.phtml)を更新すると仮定します。これを行うには、次のディレクトリ構造を作成します。

app/design/frontend/Mycompany/Basic/Magento_Catalog/templates/product

ここでは、現在のテーマが基本であると仮定します。次に、list.phtmlファイルを次の場所から製品ディレクトリにコピーします。

app/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

これで、オーバーライドしたファイルに必要な変更を加えることができます。

詳細については、このチュートリアルを読んでください。


2
こんにちは、\ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ templates \ product \ list.phtmlのlist.phtmlファイルをオーバーライドします。しかし、うまくいきませんでした。どこで間違っていたかを知ることができますか?
ビニャS

同じ問題は、更新を何回押しても、デフォルトのものがカスタムのものの上にロードされます。はい、私は誰かが尋ねる前に正しいパスを持っていますが、私はコンポーザーを使用してmagentoをインストールしているので、それが重要な場合はデフォルトが異なる場所にあります。
ダスティンポワサン

htmlブロックキャッシュをクリアする必要がありましたが、これは私にとって完璧に機能しました!(このブログのようにキャッシュをクリアします。gardenhouse.io/ 2018/05/29 /…
ポール

モジュールからテンプレートをオーバーライドする方法は?
ブラック

8

私は自分の質問に答えています

私の質問で言及された場所にある.phtmlファイルをオーバーライドする方法を見つけました。

元のファイルを上書きするには、次の場所に配置する必要があります

app\design\frontend\<VENDOR_NAME>\<THEME_NAME>\Magento_Catalog\templates\product\view

そして、私はMagento 2の他の.phtmlファイルをオーバーライドするための理論は同じであると信じています


もっと簡単に説明してください...カスタムphtmlファイルをテーマフォルダisitにコピーする必要がありますか?app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \へのように そうすることで、ビューフォルダにテンプレートは必要ないのですか?
-Sushivam

こんにちは、ウィジェットのphtmlファイルをオーバーライドしようとしていますが、使用したパスが正しいかどうかわかりません。Magento_Catalogは、オーバーライドするモジュールフォルダーに固有のパスの一部ですか?したがって、vendor \ magento \ module-catalog-widget \ view \ frontend \ templates \ product \ widget \ contentをオーバーライドする場合、インスタンスのMagento_CatalogをインスタンスのMagento_Catalog_Widgetに置き換えますか?私にはまだ明確ではないので、少し混乱しています。
robgt

6

phtml、レイアウト、およびWebファイルをオーバーライドしてカスタムテーマを所有するには

1)テンプレートファイルをオーバーライドするには:

vendor / magento / module-catalog / view / frontend / templates / product / list.phtml

このパスに従ってください

app / design / frontend / Vendor / theme / Magento_Catalog / templates / product / list.phtml

2)レイアウトファイルをオーバーライドするには:

vendor / magento / module-catalog / view / frontend / layout / catalog_product_view.xml

このパスに従ってください

app / design / frontend / Vendor / theme / Magento_Catalog / layout / catalog_product_view.xml


Observer、Controllerなどの他のモジュールファイルをオーバーライド/カスタマイズする方法は?
タヒルヤシン

6

からpthmlおよびレイアウトファイルをオーバーライドするには

vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

app/Mycompany/OverideCatalog/view/frontend/templates/product/list.phtml

レイアウト:

vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

app/Mycompany/OverideCatalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Mycompnay_OverideCatalog::product/list.phtml">

3

カスタムテーマによるテンプレート(phtml)のオーバーライド

vendor\magento\module-catalog\view\frontend\templates\product\some.phtml最初にオーバーライドする場合は、カスタムテーマを作成する必要があります。カスタムテーマの作成方法については、このリンクを参照しください。

その後、カスタムテーマにphtmlファイルを作成してデフォルトのテーマをオーバーライドします

 app/design/frontend/vendor-name/theme-name/Magento_Catalog/templates/product/some.phtml

つまり、ブラウザと同様にmagentoのキャッシュを最終的にクリアしてから、ページをチェックすると、新しいphtmlファイルのみが反映されます。

すべてのテンプレートをオーバーライドするのと同じ方法です。

幸運を


おかげで、私はそれを理解し、自分の質問で発見に答えました。あなたの答えは私の発見に非常に似ています。
ヌワウス

2

フォルダーを開く:/vendor/magento/theme-frontend-luma/モジュールフォルダーとレイアウトファイルをビューフォルダーからコピーします。

次に、フォルダーを作成します。 /app/design/frontend/spacename/Theme/

次に、モジュールフォルダーを作成してから、テンプレートとレイアウトフォルダーを作成します。

モジュールビューフォルダーからテンプレートとレイアウトファイルを挿入します。


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