我知道父主题更新不应该影响子主题修改,但这是否意味着如果我有标题。php在我的子主题(wp-content/themes/indightchild/header.php)中,则没有父主题更新到标题。php会影响我的网站吗?
WordPress将始终加载子主题的标题。php在你的网站上,所以理论上不,它不会影响你。但是,不能保证父主题不会更改其标题中的某些内容。然后对依赖于该更改的其他文件进行更改。如果您的子主题的标题中没有反映出该更改,那么可能存在问题。
例如,假设父主题发布了一个更新,其中添加了<div>
标题中的元素。关闭的php</div>
, 在页脚中。php。如果您只有标题的副本。php,然后是父主题的页脚。php将为未打开的元素提供一个结束标记。
这只是一个可能发生的事情的假设例子,但正因为如此,我建议在每次更新之前检查父主题的发行说明,以密切注意可能影响子主题的任何更改。
这是否适用于修改小部件PHP代码?
取决于父主题和您所谈论的小部件。WordPress只会自动处理属于template hierarchy 还有其他几个,比如header。php,页脚。php,注释。php和searchform。php。
函数或模板文件中的所有其他代码都要求父主题明确支持子主题。如果您不确定,您需要询问父主题的开发人员什么是子主题。
如果以上任何一个答案都是“是”,那么我如何能够轻松地从对PHP文件的父主题更新所附带的其他增强/修复中获益,而不丢失所做的更改?我想我想让我的更改与主题供应商所做的更改合并,但我想这可能要求太多了。
如果要采用父主题对已在子主题中替换的文件所做的任何更改(如上面的新div示例),则需要通过将新位复制到子主题文件或重做来手动合并这些更改。
激活子主题后,我注意到我对父主题所做的一些自定义消失了。(当我说“自定义”时,我指的是通过外观>自定义>标题设置>标题信息部分进行的更改,例如,不是对PHP代码的更改。)这是否正常?在创建/激活子主题时,我可能会丢失哪些父主题自定义?
主题mod是在Customiser中所做的更改通常保存为的内容,它是针对活动主题存储的,无论它是父主题还是子主题。切换到子主题时会丢失哪些自定义取决于父主题。
通过直接修改数据库,理论上可以将主题mod从父主题复制到子主题。查看的答案this question 获取执行此操作的方法。
我目前正在从事一个项目,希望在切换主题时,对一个子主题所做的自定义也应用于同一父主题的其他子主题。这需要我将自定义保存为选项,而不是主题mod。因此,如果这是您想要的,则需要父主题以相同的方式工作。
我知道更新父主题不会触及子主题文件,但如果我甚至没有使用子主题,则通过WordPress更新主题将始终替换标题。php文件,或者仅当该文件在发布当前安装的版本时出现更改后,才会被替换?
更新主题时,主题中的所有文件都将被替换,无论它们在新版本中是否实际更改。任何新文件也将被删除,任何删除的文件都将被重新添加。WordPress不支持“增量更新”。这就是为什么你会看到人们非常坚持不修改父主题。