Magento 2:Lumaテーマのホームページをオーバーライドする方法


9

Wagent Windows 10でMagento 2 CEバージョン2.1.0を使用しています

私はすでに言及しました

Magento 2:ミニカートのデフォルトのテンプレートHTMLファイルをオーバーライドする方法

Magento 2のデフォルトのLumaテーマを上書きします

以下のフォルダ構造があります

magento2
 |_ app
   |_ design
      |_ frontend
        |_ Custom
            |_Theme
              |_Magento_Theme
                |_templates
                  |_root.phtml     - Copy of Luma
                registration.php
                theme.xml

app \ design \ frontend \ Custom \ Theme \ Magento_Theme \ registration.php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Custom/Theme',
    __DIR__
);

app \ design \ frontend \ Custom \ Theme \ Magento_Theme \ theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>My Theme</title>
    <parent>Magento/luma</parent>
</theme>

php bin/magento setup:static-content:deployキャッシュも実行してクリアします。新しく作成したテーマがに表示されませんAdmin -> Content -> Design -> Configuration。ドロップダウンリストを編集します。

まだ何が足りないのですか?


回答:


6

新しいテーマまたはモジュールを作成するときは、モジュールまたはテーマフォルダーのルートでregistration.phpファイルを定義する必要があります。

Magentoがテーマ名の宣言にこの標準を使用したため、常に小文字でテーマ名を使用してください。

あなたはキャメルケースでテーマ名を保持することに何の問題もありませんが、標準的な方法を使用することは大歓迎です。

Magento_Themeフォルダー内のregistration.phpファイルを間違った場所に定義する必要があります。

テーマ構造の正しい図は以下になります、

magento2
 |_ app
   |_ design
      |_ frontend
        |_ Custom
            |_theme
              |_Magento_Theme
                |_templates
                  |_root.phtml     - Copy of Luma
              |_registration.php
              |_theme.xml

registration.phpのパスは app\design\frontend\Custom\theme\registration.php

registration.phpファイル:

<?php
   \Magento\Framework\Component\ComponentRegistrar::register(
     \Magento\Framework\Component\ComponentRegistrar::THEME,
      'frontend/Custom/theme',
      __DIR__
);

あなたのtheme.xmlファイルのパスは、

app\design\frontend\Custom\theme\theme.xml

theme.xmlファイル:

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
   <title>Custom Theme</title>
   <parent>Magento/luma</parent>
   <media>
      <preview_image>media/preview.jpg</preview_image>
   </media>
</theme>

すべてのセットアップが完了したら、テーマのデプロイコマンドを実行することを忘れないでください。

php bin/magento setup:static-content:deploy

Content -> Design -> Configurationカスタムテーマを設定するには、管理パネル内を確認してください。

キャッシュを削除し、フロントエンドをチェックインします。


Bijal Usean&SH Patel。以前この問題について彼と話し合っているので、@ Rakeshの回答を受け入れる。
Ankit Shah

管理者からの保存中にエラーが発生していますCannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory。保存できないため、新しいテーマを有効にできません
Ankit Shah

アップグレードコマンドを実行してから、デプロイコマンドを実行し、ルートからvarフォルダーを削除してチェックしてください
Rakesh Jesadiya '28

いいえ。まだ問題
Ankit Shah 2016


1

あなたがtheme.xmlregistration.phpを間違った場所に置いた場合、実際の場所は

app/design/frontend/<vendor>/<theme>/registration.php

<?php
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/<vendor>/<theme>',
    __DIR__
);

app/design/frontend/<vendor>/<theme>/theme.xml

<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Vendor Theme</title>
    <parent>Magento/luma</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

注: preview.jpgをapp/design/frontend/<vendor>/<theme>/media/preview.jpg

これら2つのファイルは、Adminでテーマリストを取得するのに十分であり、次にテーマを適用します。

たとえばapp/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml、lumaテンプレートを上書きしたい場合は、そのテンプレートを変更できます。app/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/view/addtocart.phtml


管理者からの保存中にエラーが発生しCannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory.ているため、新しいテーマを保存および有効化できません
Ankit Shah

ファイル権限の問題のようですが、magento標準に従って正しい権限を設定しているかどうかを確認してください。
ビラルUsean 2016

質問のとおりI'm using Magento 2 CE Version 2.1.0 on WAMP Windows 10
Ankit Shah


magentoルートディレクトリアクセスユーザーとそのユーザーグループを確認してください。これは、ウェブサーバーユーザーとそのグループである必要があります。また、そのディレクトリの読み取り/書き込み権限を確認してください。あなたはより多くのアイデアを得ることができます。この2つのリンク参照してくださいdevdocs.magento.com/guides/v2.0/install-gde/prereq/...の magento.stackexchange.com/q/91870/36463を
ビラルUsean

1

使用したパスが正しくありません。

新しいカスタムテーマを作成するには、以下の手順に従ってください。

以下のコードを使用して、theme.xmlファイルを 作成します/app/design/frontend/Custom/Theme/theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Custom Theme</title>
    <parent>Magento/luma</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

app/design/frontend/Custom/Theme/registration.php以下のコードを使用して、registration.phpファイルを作成します。

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Custom/theme',
    __DIR__
);

からpreview.jpgをコピー

vendor/magento/theme-frontend-luma/media/preview.jpg 

追加

app/design/frontend/Custom/Theme/media/preview.jpg

これで、カスタムテーマをadminで確認し、adminからカスタムテーマを選択して保存できます。


管理者からの保存中にエラーが発生Cannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory.するため、保存できず、新しいテーマを有効にできない
Ankit Shah

Lumaテーマは作業を適切に保存しますか?
Suresh Chikani

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