You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento 2:如何通过主题或扩展覆盖vendor端grid.phtml文件

用主题或扩展覆盖Magento 2的grid.phtml模板文件

下面提供两种安全的方式修改目标模板,避免直接改动vendor目录下的文件:

方法一:通过主题覆盖

这是最常用的定制方式,适合仅依赖主题实现定制的场景:

  • 定位你的主题目录(默认路径为 app/design/frontend/[厂商名]/[主题名]),创建对应模板路径:
    module-catalog-widget/view/frontend/templates/product/widget/content/
    
  • 复制 vendor/magento/module-catalog-widget/view/frontend/templates/product/widget/content/grid.phtml 文件到上述创建的目录中
  • 直接修改复制后的grid.phtml文件,添加你的自定义内容
  • 执行缓存清理命令使修改生效:
    php bin/magento cache:clean
    

方法二:通过自定义扩展覆盖

适合需要封装定制逻辑、方便复用或与其他模块配合的场景:

  1. 创建自定义模块(以 Vendor/CatalogWidgetOverride 为例):
    • 在 app/code/Vendor/CatalogWidgetOverride 下创建 registration.php:
      <?php
      \Magento\Framework\Component\ComponentRegistrar::register(
          \Magento\Framework\Component\ComponentRegistrar::MODULE,
          'Vendor_CatalogWidgetOverride',
          __DIR__
      );
      
    • 创建 etc/module.xml:
      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
          <module name="Vendor_CatalogWidgetOverride" setup_version="1.0.0">
              <sequence>
                  <module name="Magento_CatalogWidget"/>
              </sequence>
          </module>
      </config>
      
  2. 创建布局文件替换原模板:
    • 在 view/frontend/layout/catalog_widget_product_list.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="widget.product.list">
                  <action method="setTemplate">
                      <argument name="template" xsi:type="string">Vendor_CatalogWidgetOverride::product/widget/content/grid.phtml</argument>
                  </action>
              </referenceBlock>
          </body>
      </page>
      
  3. 创建模板目录并复制原文件:
    • 创建路径 view/frontend/templates/product/widget/content/,复制原grid.phtml到这里并修改添加自定义内容
  4. 启用模块并更新系统:
    php bin/magento module:enable Vendor_CatalogWidgetOverride
    php bin/magento setup:upgrade
    php bin/magento cache:clean
    

内容的提问来源于stack exchange,提问作者Ekta Rathod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:55:30