Magento 2: Cách ghi đè Trang chủ của Luma Theme


9

Tôi đang sử dụng Magento 2 CE Phiên bản 2.1.0 trên WAMP Windows 10

Tôi đã giới thiệu

Magento 2: Làm cách nào để ghi đè tệp html mẫu mặc định của giỏ hàng nhỏ?

Muốn ghi đè chủ đề Luma mặc định của Magento 2

Tôi có cấu trúc thư mục dưới đây

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

ứng dụng \ design \ frontend \ Custom \ Theme \ Magento_Theme \ register.php

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

ứng dụng \ 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>

Tôi chạy php bin/magento setup:static-content:deployvà xóa bộ nhớ cache là tốt. Nó không hiển thị Theme mới được tạo của tôi trong Admin -> Content -> Design -> Configuration. Chỉnh sửa danh sách thả xuống.

Tôi vẫn còn thiếu điều gì?


Câu trả lời:


6

Khi tạo bất kỳ chủ đề hoặc mô-đun mới nào, bạn cần xác định tệp register.php ở thư mục gốc của mô-đun hoặc thư mục.

Luôn sử dụng tên chủ đề bằng chữ thường, vì Magento đã sử dụng tiêu chuẩn này để khai báo tên chủ đề.

Bạn không có bất kỳ vấn đề gì để giữ tên Theme trong camelcase nhưng sử dụng cách tiêu chuẩn được đánh giá cao.

Bạn phải xác định tệp register.php trong thư mục Magento_Theme, sai vị trí.

Sơ đồ chính xác của cấu trúc chủ đề sẽ ở bên dưới,

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

Đường dẫn của bạn để đăng ký.php là app\design\frontend\Custom\theme\registration.php

tập tin đăng ký :

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

đường dẫn tệp theme.xml của bạn sẽ là,

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

tập tin 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>

Sau khi hoàn tất thiết lập, đừng quên chạy lệnh triển khai cho chủ đề,

php bin/magento setup:static-content:deploy

Kiểm tra bên trong bảng quản trị của bạn, Content -> Design -> Configurationđể đặt chủ đề tùy chỉnh của bạn.

Xóa bộ nhớ cache và kiểm tra trong frontend.


Đồ dùng của Usal & SH Patel. Chấp nhận câu trả lời của @Rakesh vì trước đây tôi đang thảo luận với anh ấy về vấn đề này.
Ankit Shah

Đó là lỗi trong khi lưu từ 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. Vì vậy, không thể lưu và bật chủ đề mới
Ankit Shah

vui lòng chạy lệnh nâng cấp, sau đó chạy lệnh triển khai, xóa thư mục var khỏi root và kiểm tra
Rakesh Jesadiya

Không. Vấn đề vẫn còn
Ankit Shah


1

bạn đặt theme.xmlregistration.php tại chỗ sai, vị trí thực tế là

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>

lưu ý: nơi preview.jpg trongapp/design/frontend/<vendor>/<theme>/media/preview.jpg

hai tệp này đủ để nhận danh sách chủ đề của bạn trong Quản trị viên, sau đó áp dụng chủ đề của bạn.

Nếu bạn muốn ghi đè các mẫu luma chẳng hạn app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml, bạn có thể thực hiện các thay đổi của mẫu đó trongapp/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/view/addtocart.phtml


Đó là lỗi trong khi lưu từ Quản trị viên 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.Vì vậy, không thể lưu và bật Chủ đề mới
Ankit Shah

có vẻ như các vấn đề về quyền tập tin, bạn có kiểm tra xem bạn có đặt quyền theo tiêu chuẩn magento không.
Bilal Usean

Như đã đề cập trong câu hỏiI'm using Magento 2 CE Version 2.1.0 on WAMP Windows 10
Ankit Shah


vui lòng kiểm tra người dùng truy cập thư mục gốc magento của bạn và nhóm người dùng của họ, đó phải là người dùng máy chủ web và nhóm của họ, cũng như kiểm tra quyền đọc / ghi của thư mục đó. tham khảo hai liên kết này, bạn có thể có thêm ý tưởng devdocs.magento.com/guides/v2.0/install-gde/prereq/ phỏng magento.stackexchange.com/q/91870 / 46346
Bilal Usean

1

Đường dẫn không chính xác bạn đã sử dụng.

Thực hiện theo hướng dẫn dưới đây để tạo chủ đề tùy chỉnh mới.

Tạo tập tin theme.xml/app/design/frontend/Custom/Theme/theme.xml bằng mã bên dưới.

<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>

Tạo tập tin đăng ký app/design/frontend/Custom/Theme/registration.phpvới mã dưới đây.

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

sao chép preview.jpg từ

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

thêm vào

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

Bây giờ bạn có thể thấy chủ đề tùy chỉnh của mình trong quản trị viên, chọn chủ đề tùy chỉnh từ quản trị viên và lưu nó.


Đó là lỗi trong khi lưu từ Quản trị viên 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.Vì vậy, không thể lưu và bật Chủ đề mới
Ankit Shah

Luma theme lưu công việc đúng cách?
Suresh Chikani

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.