回答:
子テーマを作成して、Magento 2のすべてのカスタムテーマをここに配置します。
app / design / frontend / company_name / theme_name
私たちの会社名はmycompanyで、テーマ名は基本的なものだと仮定しましょう。テーマ用に次のディレクトリ構造を作成する必要があります。
app
└────design
└──────frontend
└──mycompany
└───basic
└──etc
└──Magento_Theme
│ └─layout
│ default.xml
└──media
│ preview.png
└──web
│ └─css
│ └─fonts
│ └─images
│ └─js
│ theme.xml
│ registration.php
我が社 :-
テーマパッケージの名前
基本:- テーマの名前。mycompanyフォルダー内に複数の名前付きテーマを含めることができます。
etc / view.xml:-
このファイルは、製品画像の寸法、サムネイルなどを指定するために使用されます。
Magento_Theme:- このディレクトリは、既存のMagentoのテーマファイルをオーバーライドするために使用されます。
Magento_Theme / layout / default.xml:-
デフォルトでは、Magento2はテーマのロゴファイルを次のように想定しています。ロゴ/web/media/logo.svg
用に他のファイルが必要な場合は、default.xml
ファイルで宣言する必要があります。
このファイルは、デフォルトのテーマの設定を上書きするためにも使用されます。
media / preview.png:- 現在のテーマのプレビュー。
web:- このディレクトリには、画像、スタイル、javascript、フォントなど、テーマのすべての静的データが含まれます。
registration.php:- このファイルは、テーマをMagento2システムに登録するために必要です。
theme.xml:- これは、テーマ名、その親、およびオプションでテーマのプレビュー画像を定義する必須ファイルです。
テーマファイルを作成する
ファイルを1つずつ作成してみましょう。
theme.xml(app / design / frontend / mycompany / basic / theme.xml)
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Basic</title> <!-- your theme's name -->
<parent>Magento/blank</parent> <!-- the parent theme -->
<media>
<preview_image>media/preview.jpg</preview_image> <!-- theme's preview image -->
</media>
</theme>
registration.php(app / design / frontend / mycompany / basic / registration.php)
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::THEME,
'frontend/mycompany/basic',
__DIR__
);
default.xml(app / design / frontend / mycompany / basic / Magento_Theme / layout / default.xml)
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="logo">
<arguments>
<argument name="logo_file" xsi:type="string">images/my_logo.png</argument>
<argument name="logo_img_width" xsi:type="number">200</argument>
<argument name="logo_img_height" xsi:type="number">200</argument>
</arguments>
</referenceBlock>
</body>
</page>
これで、テーマの準備ができました。キャッシュをクリアすると、管理者から新しいテーマが選択されます。
ここで、管理者にログインして次のパスに移動します。
Content -> Design -> Themes
リストにテーマが表示されます。
次に進みます:
Stores -> Configuration -> Design
左上のストアビューの前にあるメインWebサイトを選択します。今すぐクリック
Desgin -> Design Theme
[デフォルトを使用]チェックボックスをオフにして、テーマを選択します。[構成の保存]をクリックし、キャッシュをクリアすると、新しいテーマの準備ができました。ホームページを確認してください。
Design -> Design Theme
に変更されましたContent/Design/Configuration
。
media/preview.png
が存在しないと、Magentoは例外をスローします。
ディレクトリを作成します。
ルートディレクトリに移動し、app / design / frontendに移動して、ディレクトリDemoを作成します。
次に、app / design / frontend / DemoにMythemeディレクトリを作成します。
app / design / frontend / Demo / MythemeにMangento_Themeディレクトリを作成します。
app / design / frontend / Demo / Mytheme / Magento_Themeにレイアウトディレクトリを作成します。
app / design / frontend / Demo / Mythemeにメディアディレクトリを作成します。
app / design / frontend / Demo / MythemeにWebディレクトリを作成します。
app / design / frontend / Demo / Mytheme / webに画像ディレクトリを作成します。
テーマの宣言
app / design / frontend / Demo / Mythemeにtheme.xmlファイルを作成し、次のコードを貼り付けます。
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Mytheme</title>
<parent>Magento/blank</parent>
<media>
<preview_image>media/preview.jpg</preview_image>
</media>
</theme>
テーマの登録
app / design / frontend / Demo / Mythemeにregistration.phpファイルを作成し、次のコードを貼り付けます。
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::THEME, 'frontend/Demo/Mytheme', __DIR__
);
テーマのプレビュー画像をアップロード
app / design / frontend / Demo / Mytheme / mediaに移動して、プレビュー画像(preview.jpg)をここにアップロードします。
テーマロゴの宣言
app / design / frontend / Demo / Mytheme / Magento_Theme / layoutに移動して、default.xmlファイルを作成します。次のコードを貼り付けます:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="logo">
<arguments>
<argument name="logo_file" xsi:type="string">images/mytheme-logo.png</argument>
<argument name="logo_img_width" xsi:type="number">200</argument>
<argument name="logo_img_height" xsi:type="number">200</argument>
</arguments>
</referenceBlock>
</body>
</page>
テーマのロゴをアップロード
app / design / frontend / Demo / Mytheme / web / imagesに移動し、ここにロゴ(mytheme-logo.png)をアップロードします。
テーマを適用する
Magento 2の管理パネルを開き、コンテンツ→設定に移動します。
[編集]オプションをクリックします。
[適用テーマ]ドロップダウンメニューから[Mytheme]を選択し、[
構成の保存]をクリックします。
実行コマンド
SSHターミナルを開き、Magento 2のルートディレクトリに移動します。次に、これらのコマンドをすべて1つずつ実行します。
rm -rf var/di/* var/generation/* var/cache/* var/log/* var/page_cache/* var/session/* var/view_preprocessed/* pub/static/*
php bin/magento setup:upgrade
php bin/magento setup:db-schema:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento indexer:reindex
php bin/magento cache:clean
php bin/magento cache:flush