子主题是修改、调整和测试主题的一个比较好用的方法,无需担心所涉及的风险。由于修改的是子主题而不是父主题,因此在更新父主题时,不会丢失任何自定义内容。

如果在进行更改后遇到任何问题,可以通过删除创建的子主题,随时恢复到原始主题。

什么是 WordPress 子主题?
子主题,顾名思义,是从父主题继承功能的主题。编辑网站 WordPress 主题可能存在风险,因为任何自定义更改都有可能影响核心主题。因此,子主题可以作为一种无风险的替代方案,可以安全地修改 WordPress 主题。

WordPress 子主题与父主题存在于不同的文件夹中,子主题依赖父主题的功能,除非进行修改。在 WordPress 仪表盘中安装子主题时,会发现它与父主题是关联的。

如果在网站上用子主题,那么 WordPress 核心会优先检查子主题的文件。如果子主题没有进行修改,WordPress 将执行父主题的文件。

需要记住的是,子主题不能独立运行,必须与父主题同时安装。

WordPress 父主题和子主题的区别是什么?
父主题是一个完整的 WordPress 主题,包含模板文件、样式表、CSS、JavaScript 文件和其他运行 WordPress 网站所需的资源。而子主题则继承其功能自父主题。

下面整理了一个表格帮助你们理解两者之间区别的对比表:

父主题 子主题
最初在 WordPress 中就存在 后来开发出来的
父主题独立于其他主题 子主题依赖于父主题,并继承父主题的功能
包含所有的文件和资源 子主题通常只有两个文件:style.css 和 functions.php
父主题是必需的 子主题适用于进行自定义
什么时候在 WordPress 中使用子主题?
可以在以下情况下使用子主题:

想要自定义主题的模板或样式,但不希望修改父主题的代码。
想要测试新功能或自定义设置,而不冒风险。
正在开发一个新主题,并希望使用现有主题作为起点。
想为特定客户或项目创建一个自定义主题,并以现有主题为基础进行开发。
创建 WordPress 子主题之前的先决条件
1. 备份网站
在创建子主题之前,一定要对网站进行备份。一旦发生意外,可以通过备份将网站恢复正常。你可以使用插件(例如 Updraft)进行备份,或者也可以通过主机控制面板创建备份。
如果你从未备份过 WordPress 网站,可以参考我们的简单指南,了解如何备份 WordPress 网站。

2. 创建暂存环境
建议的方法是在暂存环境中进行更改,测试无误后再将这些更改应用到在线环境中。创建一个 WordPress 暂存网站可以在不影响线上网站的情况下安全地测试更改。

如何手动创建子主题
在 WordPress 中创建子主题只需几个步骤。为了方便完全理解 WordPress 中子主题的概念,我们以 Twenty Fifteen 默认主题为例子,创建一个子主题,并进行一些修改,帮助你们理解子主题的原理。

步骤 1:创建子主题文件夹
首先,在本地系统中创建一个单独的文件夹,用于存放子主题所需的所有必要文件。

为什么要在本地系统中创建?

因为当完成所有文件的创建后,可以通过 FTP(文件传输协议)技术将文件夹上传到你的网站。

其次,为新创建的文件夹命名,使其与父主题名称相似,并在名称后面加上“child”这个词。例如:网站正在使用 Twenty Twenty-Two 主题。

如果想为 Twenty Twenty-Two 主题创建一个子主题,我会将文件夹命名为 Twenty-Twenty-Two-child,这表示该文件夹是 Twenty-Two 主题的子主题文件夹。

步骤 2:为子主题创建样式表
接下来,需要在子主题文件夹中创建一个名为 style.css 的文件。这个 CSS 文件将包含子主题的所有样式规则和声明。

要创建 CSS 文件,可以用 Notepad 这样的文本编辑器,或者 Sublime Text 等代码编辑器。

为了让样式表正常工作,需要在 CSS 文件的顶部添加头部注释。头部注释包含关于子主题的基本信息,包括它是某个特定父主题的子主题。

注释中最重要的两个元素是主题名称(Theme Name) 和 模板目录(Template)。主题文件通常位于 wp-content/themes 文件夹中。

打开 Notepad,将下面这些代码复制并粘贴到你的文件中,并将此文件保存为 .css 文件扩展名:

[code]
/*
Theme Name: Twenty Twenty Two Child Theme
URI: https://wordpress.org/themes/twentytwentytwo/
Author: the WordPress team
Author URI: https://wordpress.org/
Template: twentytwentytwo
Description: Child Theme of Twenty Twenty-Two
Version: 1.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, blue, gray, pink, purple, white, yellow, dark, light, two-columns, left-sidebar, fixed-layout, responsive-layout, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready Text Domain: twentytwentytwo-child This theme, like WordPress, is licensed under the GPL. Use it to make something cool, have fun, and share what you've learned with others. */
[/code]

保存文件后,进入 WordPress 后台管理面板 → 外观 → 主题,你会看到 Twenty Twenty-Two Child 主题已经出现了。现在可以将该主题应用到网站上。
由于 style.css 文件位于 WordPress 子主题目录中,WordPress 会加载这个 style.css 文件,而不是父主题的样式表。其他文件,如 index.php、page.php 和 functions.php,都会从父主题中加载。

不过,因为我们还没有在子主题的 style.css 中定义任何样式,所以需要导入父主题的样式。根据 WordPress Codex 的最佳实践,推荐通过 functions.php 文件将样式表加入队列(enqueue)。

步骤 3:加载父主题和子主题的样式表
与其他文件不同,WordPress 子主题中 functions.php 文件的工作原理是:WordPress 首先加载子主题的 functions.php 文件并初始化其中的函数,之后才会执行父主题的 functions.php 文件。

正如前面提到的,导入样式表的最佳方式是通过 functions.php 文件将其加入队列(enqueue)。

在子主题目录中创建一个 functions.php 文件,并添加下面这些代码:

phpCopy code

[php]
<?php<
br>
add_action( 'wp_enqueue_scripts', 'enqueue_parent_styles' );<br>
function enqueue_parent_styles() {<br> wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );<br>}
[/php]

这段代码会调用父主题文件中的 style.css 样式表。如果需要编辑样式表中的内容,可以将修改后的样式规则添加到子主题的 style.css 文件中。

步骤 4:编辑子主题的 style.css 文件
在 WordPress 子主题中,可以通过在子主题文件夹中的 style.css 文件中定义样式规则,轻松编辑样式表。例如:如果我们想要更改链接的颜色,只需在子主题的 style.css 文件中添加下面这行代码:

cssCopy code

a {<br> color: #D54E21;<br> text-decoration: none;<br>}
在这个过程中,子主题 style.css 文件中对链接(a)的样式规则会覆盖父主题的 style.css,其他样式则保持不变。

步骤 5:编辑 single.php 模板文件
在子主题中,可以轻松编辑单个模板文件。例如,如果想要修改 single.php 文件,必须先将该文件从父主题文件夹中复制出来,然后粘贴到 WordPress 子主题的文件夹中。

 

假设我们想要从单篇文章页面中移除评论部分。将文件复制到子主题文件夹后,我们可以编辑文件,删除下面代码:

[wp_syntax]

// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
[/wp_syntax]
在这个过程中,WordPress 会先检查子主题文件夹中是否存在 single.php 文件。如果存在,则会从子主题文件夹加载它;如果不存在,则会回退加载父主题文件夹中的文件。

同理,我们可以编辑主题中的任何单个模板文件。这种方法非常好,因为它保持了父主题的完整性,并且在更新父主题时不会丢失自定义修改。

如何使用插件创建子主题
如果不是开发人员,没有技术背景,或者不想使用手动方法,那么可以借助插件来创建子主题。WordPress 仓库中有多个插件可以帮助快速创建子主题。

有 3 个最受欢迎的免费子主题插件:

Child Theme Wizard
WPS Child Theme Generator
WP Child Theme Generator
在本教程中,我们用 Child Theme Wizard 插件来生成子主题。

转到WordPress 仪表板 > 插件 > 添加新插件。
在右侧搜索栏中搜索Child Theme Wizard 插件。
单击“安装”按钮。
安装后,单击激活按钮即可激活插件。

成功激活插件后,会在左侧 WP 管理栏的工具选项下看到“子主题向导”选项

现在,必须选择父主题。为此,需要添加标题、描述和子主题URL,然后单击创建子主题。

现在转到外观 > 主题并查看新创建的子主题。

这就是用插件“Child Theme Wizard”简单地创建子主题的方法。

总结
就这样!现在已经了解了什么是 WordPress 子主题,以及它与父主题的区别。在本文中,解释了用子主题的好处,以及在实施之前需要考虑的先决条件。

常见问题
Q: 什么是 WordPress 子主题?
A: WordPress 子主题是一个继承父主题所有功能、设计元素和特性的子主题。用子主题可以在更新父主题时,不会丢失自定义修改。

Q: WordPress 中父主题和子主题有什么区别?
A: 父主题是一个完整且独立的 WordPress 主题,包含所有核心功能、样式和模板。而子主题依赖于父主题,用于自定义或覆盖特定元素,而无需修改父主题的文件。
简而言之,父主题由开发者直接更新,而子主题在更新时可以保留自定义修改。

Q: 如何手动创建子主题?
手动创建子主题可以遵循以下 5 个步骤:

创建一个子主题文件夹
为子主题创建样式表(style.css)
挂载父主题和子主题的样式表
编辑子主题的 style.css 文件
编辑 single.php 模板文件

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。