有时,您可能需要一种在不更改主题代码的情况下修改或扩展现有主题的方法。
这时,子主题就派上用场了。
在本课中,您将了解什么是子主题、为什么要使用子主题,以及如何创建和使用子主题。
什么是子主题?
子主题是父主题的扩展。
使用子主题可以修改父主题的任何部分,而无需更改父主题代码。
让我们通过一个简化示例来理解其工作原理。
为何使用子主题?
在本地WordPress环境中安装并激活任意WordPress主题库中的主题。
本例中使用的是默认的Twenty Twenty-Four主题。
假设您想自定义主题的某些部分,例如页脚布局和结构。
您希望将网站菜单置于左侧,而网站标志、标题和标语显示在右侧。
同时还需要将页脚版权信息更改为您公司的名称并更新URL。
一种方法是通过站点编辑器实现:找到并编辑页脚模板部件,进行相应调整——移动菜单位置,更新版权信息等。
但若要在其他站点复用这些修改,每次都需要在站点编辑器中手动操作。
当然也可以直接修改Twenty Twenty-Four的页脚图案文件,但主题更新时会覆盖所有更改!
这正是子主题的价值所在。
创建仅包含特定修改的子主题后,激活子主题即可应用变更。
即使父主题(本例为Twenty Twenty-Four)未来更新,子主题中的修改仍会保留。
创建子主题
让我们通过实践来理解子主题的运作方式。
在wp-content/themes目录下创建名为twentytwentyfourchild的空文件夹。
在其中创建style.css文件,并添加以下主题头部信息:
/**
* Theme Name: Child theme of Twenty Twenty-Four
* Template: twentytwentyfour
*/
进入WordPress后台的主题页面,即可看到新创建的子主题。
激活子主题后访问网站前端,外观与之前完全一致——因为所有元素都继承自父主题。
子主题工作原理
所有WordPress主题(除非明确声明为子主题)在技术上都是父主题。
子主题的特殊性在于其style.css文件中定义了Template字段,该字段值必须与父主题文件夹名称(相对于wp-content/themes目录)完全匹配。
本例中,由于Template字段定义为twentytwentyfour,因此成为Twenty Twenty-Four的子主题。
现在可以选择要修改的父主题特定部分。
例如若只需修改页脚,可以在子主题目录的相同相对位置创建footer.html文件。
通过站点编辑器修改页脚模板后,切换到代码编辑器视图复制代码,粘贴至子主题的footer.html文件即可。
值得注意的是,子主题几乎可以扩展父主题的所有部分:模板部件、图案、样式,甚至通过functions.php扩展主题功能。
使用Create Block Theme插件
除了手动创建,还可以使用Create Block Theme插件基于站点编辑器的修改生成子主题。
操作步骤:
1. 激活Twenty Twenty-Four并删除之前创建的子主题
2. 安装并激活Create Block Theme插件
3. 在站点编辑器修改页脚模板部件
4. 点击编辑器右上角插件图标,选择”创建子主题”
5. 命名后点击创建按钮
系统将自动创建子主题并重新加载编辑器。在WordPress后台主题页面可以看到新建的子主题已激活,前端页脚修改也已生效。
延伸阅读
更多关于子主题的信息,请参考《主题开发者手册》”高级主题”章节中的子主题页面,以及”核心概念”章节中关于子主题特定头部字段的说明。