Answers:
让我们创建一个子主题,以便我们在Magento 2中使用的所有自定义主题都位于此处:
应用/设计/前端/公司名称/主题名称
让我们假设,我们的公司名称是mycompany,主题名称是basic。我们需要为主题创建以下目录结构:
app
└────design
└──────frontend
└──mycompany
└───basic
└──etc
└──Magento_Theme
│ └─layout
│ default.xml
└──media
│ preview.png
└──web
│ └─css
│ └─fonts
│ └─images
│ └─js
│ theme.xml
│ registration.php
我的公司 :-
主题包的名称
basic:- 主题名称。我们的mycompany文件夹中可以有多个命名主题。
等/ 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:- 这是一个强制性文件,用于定义我们的主题名称,其父主题和可选的主题预览图像。
创建主题文件
现在让我们一个一个地创建文件。
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>
至此,我们的主题已经准备就绪。清除您的缓存,我们现在将从admin中选择新主题。
现在,登录到admin并移动到以下路径:
Content -> Design -> Themes
您应该看到您的主题已列出。
现在去:
Stores -> Configuration -> Design
在左上方的商店视图前面选择主要网站。现在点击
Desgin -> Design Theme
取消选中使用默认复选框,然后选择您的主题。单击“保存配置”,清除缓存,新主题准备就绪。检查您的主页。
Design -> Design Theme
为Content/Design/Configuration
。
media/preview.png
必须存在,否则Magento会引发异常。
创建目录:
转到root到根目录,然后导航到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中创建媒体目录。
在以下位置创建Web目录 app / design / frontend / Demo / Mytheme中。
在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的根目录。现在,一一运行所有这些命令:
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