WordPress 中的子主题——如何以及为什么使用它们
已发表: 2016-04-29WordPress 背后的全部意义在于赋予人们构建、修改和调整自己的网站或博客的能力。 就在十年前,这是您需要聘请专业设计师/开发人员的事情。
如今,您可以自己照顾您的网站,并且可以让它看起来随心所欲。
但是,如果您想超越WordPress 定制器允许您做的事情怎么办? 如果您想以更量身定制的方式修改有关当前 WordPress 主题的内容怎么办?
那么,这就是儿童主题发挥作用的地方。
为什么使用子主题
让我们从硬币的另一面开始:
如果您*不*使用子主题,而是对当前(正常)主题进行任何修改,那么第一个缺点是,如果您更新主题,所有这些修改都将消失。
现在,我所说的修改是什么意思:
- 对任何主题的 PHP 文件进行的任何手动代码编辑,
- 对style.css文件的任何修改,
- 您可能已经放入主题目录的任何新文件(这包括 PHP 文件、CSS 文件,甚至图形,几乎所有内容)——如果您有任何自定义页面模板,这将是一个常见问题。
因此,再次强调这一点,一旦您更新主题,上述所有内容都会消失。
但是为什么会这样呢?
好吧,如果您使用的主题没有像以往一样更新,问题可能就没有那么严重了。 但是,大多数高质量的 WordPress 主题往往会更频繁地更新。 这对于 WordPress 中的默认主题(例如二十五)尤其有效——只要有新版本的 WordPress 核心发布,它们就会更新。
在这种情况下,您不想错过这些更新附带的所有新内容和补丁。 实际上,它们使您的网站在新版本的 WordPress 上正常工作,并且还提高了整个事物的安全性(修复常见的安全漏洞和错误)。
但还有更多。 使用子主题还可以为您提供更好的工作组织形式的附加值。
事情就是这样,如果您尝试在当前的 WordPress 主题中编辑任何内容,则很容易搞砸。 例如,您可能会意外删除一些重要的代码行,甚至整个文件等。
使用子主题,所有修改都组织得更好。 子主题目录中的每个文件都只包含您自己的代码,所以不要再怀疑“我是否修改了文件 X?”
如何构建您的第一个子主题
这部分非常简单,几乎不需要任何编码。 不过,首先,一些一般准则:
- 每个主题都可以是父主题。 换句话说,您可以为已有的任何主题构建子主题。
- 儿童主题依赖于父母来完成他们的大部分“事情”。 以最基本的方式,空白子主题直接从父主题中获取其所有代码、设计、样式等,而无需更改任何内容。
- 子主题需要父母在场才能工作。 删除父主题后,您的子主题将不再起作用。
- 如前所述,您可以更新父主题而不会丢失任何修改。
- 如有任何情况,您可以随时切换到父主题,然后返回主题的原始版本。
现在,进入操作方法。 一个子主题只需要一些东西:
-
wp-content/themes
中的一个新目录,并且有一个唯一的名称/slug,无论你想怎么称呼它, - 该新目录中的样式表文件 -
style.css
, - 和一个
functions.php
文件。
这是我为之前的 WordPress 默认主题构建的示例子主题 - 二十五。 我首先创建了一个名为t15-child
的目录:
接下来,我在该目录中创建了两个新文件并将它们命名为style.css
和functions.php
:

让我们先编辑style.css
文件。 这是我的:
/* Theme Name: T15 child KK Theme URI: http://karol.cc/ Author: Karol K Author URI: http://karol.cc/ Template: twentyfifteen Description: My child of twentyfifteen Version: 1.0.0 License: GNU General Public License v2.0 License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: t15-child */
如您所见,没有什么太花哨的。 其中的两条关键线已被突出显示:
- 主题名称– 新子主题的名称,它将出现在wp-admin的Appearance / Themes下。
- 模板——这里最重要的一行——它通过它的 slug 指向父主题。
然后,让我们转到functions.php
文件。 我唯一拥有的东西是:
<?php function theme_enqueue_styles() { $parent_; wp_enqueue_style($parent_style, get_template_directory_uri().'/style.css'); wp_enqueue_style('child-style', get_stylesheet_directory_uri().'/style.css', array($parent_style)); } add_action('wp_enqueue_scripts', 'theme_enqueue_styles');
这只是一个简单的新功能。 它负责两件事:
- 它获取父主题的原始样式表,并且
- 它“打开”新的style.css文件,以便您可以在该文件中对主题的设计进行进一步修改。
其他需要记住的重要事项:
- 现在,您可以自由修改新的
style.css
文件。 无论您放什么新类,或修改任何旧类,都会影响您的网站及其外观。 - 您可以将其他 PHP 文件添加到子主题的目录中。 这些文件可以是全新的——例如,对于新的自定义模板——或者它们可以替换父主题的标准文件。 例如,您可以创建一个全新版本的single.php文件来处理您的博客文章的显示方式。
- 您放入新的
functions.php
文件中的所有内容都将类似于父主题中的本机functions.php文件的工作方式执行。
您创建了您的儿童主题了吗?
在这个阶段,您的工作已经完成,您现在有了一个基本的子主题,您可以使用它来对您的网站进行进一步的修改。 或者,您可以简单地使用这个新的子主题来确保您所做的任何调整都将在父主题的未来更新中保留。
你怎么看这里? 您是否打算在您的 WordPress 网站或博客上使用子主题?