Magento 2でのレイアウトファイルのオーバーライドに関する問題


9

私はMagento 2.02を使用しています。「cff」という独自のテーマを作成しました。これはLumaに基づいています。

catalog.compare.linkブロックを削除しようとしていますtop.links

このブロックのレイアウトは次のように定義されているようです

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

そして私が追加した場合

<referenceBlock name="catalog.compare.link" remove="true" />

そのファイルで、期待どおりに「Compare Products」テキストがtop.linksブロックから消えます。

ただし、ベンダーファイルを変更することは想定されていません。だから私は自分のdefault.xmlファイルを作成して削除コードを配置するための正しいフォルダーを探しています:

私はドキュメントとオンラインのどこを見てもこの情報を見つけることができません。私はいくつかの場所を試しましたが、どれもうまくいきませんでした。これはうまくいくと思いましたが、どちらもうまくいきません。

/app/design/frontend/cff/cff/Magento_Catalog/layout/default.xml

誰かがオーバーライドレイアウトの場所を教えてもらえますか?

これは私のオーバーライドするレイアウト内のコードです default.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.link" remove="true" />
    </body>
</page>

まず最初に、plsを最新バージョンのMagento2(2.1.5)にアップグレードすると、正常に動作するはずです。また、開発環境にいる場合は、静的コンテンツのデプロイを使用しないでください。これは本番用であり、開発時にはシンボリックリンクを使用する必要があります。また、magentoのルートまたは管理者からキャッシュ「php bin / magento cache:flush」を削除/更新することを忘れないでください
Vlad Patru

回答:


1

あなたは単に比較参照コンテナを削除してみることができます: compare-link-wrapper

<referenceContainer name="compare-link-wrapper" remove="true" />

レイアウトxmlによる要素の削除に関するドキュメントは少しありますが、ここで見つけることができます:http : //devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/xml-instructions.html

そのファイルをどこに置く必要があるかについてのあなたの質問に関して:あなたはあなたの仮定でそれが私たちのテーマのMagento_Catalog/layout/default.xmlまたはMagento_Theme/layout/default.xml

提供したコードとまったく同じコードを使用してみましたが、compareブロックを削除しても問題はありませんでした。キャッシュをクリアし、pubディレクトリに何も公開する必要がないことを再確認します。

更新2016年4月7日:

ディレクトリを手動で削除してpub/staticから次のコマンドを実行すると、pubディレクトリを更新できます。

setup:static-content:deploy

こんにちはタイラー、あなたの最初の感情を理解できません。「比較参照コンテナ」とは何ですか?指定したコードは、/ vendor / magento / module-catalog / view / frontend / layout / default.xmlに表示されません。提案した両方の場所でファイルを試しましたが、機能しません。その理由を考えてもらえますか?そして最後に、「パブディレクトリに何かを公開する」とはどういう意味ですか?magentoはそのフォルダー内のすべてを処理する必要はありませんか?薄暗くて申し訳ありませんが、学習曲線はこれらの部分の周りで急勾配です...
jodaki

タイラーさん、ありがとうございます。私は本当にあなたの助けに感謝します
。– jodaki

@joいくつか追加しました
タイラークラフト

0

テーマフォルダーで、最初にMagento_Theme / layoutフォルダーに移動します。

次に、layout / override / baseフォルダーを作成し、ベンダーのdefault.xmlファイルを追加して、を追加し<referenceBlock name="catalog.compare.link" remove="true" />ます。


上書きする必要はありません。Magentoを最新バージョンに更新するだけで、すでに試した方法を使用し、おそらくキャッシュを削除するだけです
Vlad Patru

0

商品リストページからreferenceContainer sidebar.additionalを削除してました。以下の手順で行いました。

  1. <referenceContainer name="sidebar.additional">\ vendor \ magento \ module-catalog \ view \ frontend \ layout \ default.xmlからコピーしました
  2. そしてそれを下に置き<body>ます。コードは<referenceContainer name="sidebar.additional" remove="true"></referenceContainer>app \ design \ frontend \ theme \ theme-name \ Magento_Theme \ layout \ default.xmlを探しているはずです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.