Magento2 如何替换Magento 2.0中的phtml文件?

Magento2 如何替换Magento 2.0中的phtml文件?,magento2,Magento2,在Magento 2.0管理面板(Store>Cofiguration>Developer>Debug)中,我将“为店面启用模板路径提示”设置为“是”。这为我提供了对phtml文件的引用,这些文件为每个部分生成HTML代码 Q1)对这些文件进行更改会得到我想要的结果。但我认为如果我决定将Magento更新到新版本,它们将被恢复/更改。我说得对吗 问题2)是否有办法通过另一种方式更改phtml文件,将phtml文件放在我的主题文件夹中?如果是,我应该把它们放在哪里 (对于简单的HTML更改,我不太

在Magento 2.0管理面板(Store>Cofiguration>Developer>Debug)中,我将“为店面启用模板路径提示”设置为“是”。这为我提供了对phtml文件的引用,这些文件为每个部分生成HTML代码

Q1)对这些文件进行更改会得到我想要的结果。但我认为如果我决定将Magento更新到新版本,它们将被恢复/更改。我说得对吗

问题2)是否有办法通过另一种方式更改phtml文件,将phtml文件放在我的主题文件夹中?如果是,我应该把它们放在哪里

(对于简单的HTML更改,我不太喜欢XML,如果可能的话,我希望尽可能多地编写静态HTML。我已经激活了自己的主题,没有任何基本主题。我是Magento的新手。)


谢谢

据我所知,有两种方法可以更改phtml模板。更改原始文件 Magento文件是一种不好的做法,应该避免使用

自定义主题 在自定义主题中,您可以按照Magento2的文件夹层次结构更改任何模板。 例如,更改login.phtml(来自模块Magento_客户)您的文件路径如下所示:

app/design/frontend/${VENDORNAME}/${THEMENAME}/Magento\u Customer/templates/form/login.phtml

源文件位于:

app/code/Magento/Customer/view/frontend/templates/form/login.phtml

我希望这有助于理解这里的命名方案

自定义模块 在自定义模块中,更改模板有点困难。下面是一个更改topmenu.html的示例,来自 模块Magento_主题。在您的模块中,模板需要放置在此处:

app/code/${VENDORNAME}/${MODULENAME}/view/frontend/templates/html/topmenu.phtml

此外,还需要布局定义:

app/code/${VENDORNAME}/${MODULENAME}/view/frontend/layout/default.xml

<?xml version="1.0"?>
<page layout="1columns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
  <body>
    <referenceBlock class="Magento\Theme\Block\Html\Topmenu" name="catalog.topnav" template="${VENDORNAME}_${MODULENAME}::html/topmenu.phtml" ttl="false"/>
  </body>
</page>


查看
app/code/Magento/Theme/view/frontend/layout/default.xml
以供参考,在这里可以找到这个xml垃圾;)

非常感谢你帮我解决这个问题!!!我想我明白逻辑了。我的路径提示给了我例如“/vendor/magento/module-theme/view/frontend/templates/html/bugreport.phtml”(我相信它是“vendor/…”,因为我从magento.com下载并安装了它)。我将“vendor/magento/module XXX”替换为“app/design/frontend/YOURVENDORNAME/YOURTHEMENAME/magento_XXX/”,并从示例中给出的地址“app/design/frontend/YOURVENDORNAME/YOURTHEMENAME/magento_Theme/templates/html/bugreport.phtml”中删除“view/frontend/”。要删除页脚链接,我认为您必须编辑XML。请参阅,这是否意味着有两种方法可以覆盖核心phtml文件?首选的方法是使用主题继承…如果我们将自定义phtml文件保存在主题文件夹中,那么视图/前端是否不需要模板?布局文件呢?