问题描述

好的,我经常看到人们谈论孩子的主题和使用它们的原因,而不是修改现有的主题,但他们似乎都围绕着这样一个想法,如果父主题被更新,所有的变化将会丢失。当我以前创建了网站时,我一直重复出现主题,更改了 style.css 中的主题名称,直接在那里工作。在我看来,使用单个主题而不是子主题将节省开销,并允许更好地控制代码 – 删除不必要的功能,而不是围绕它们工作。如果我遇到问题,我总是有原始的主题文件来引用,如果父主题被更新,如果功能名称和这样的改变,我的小孩主题仍然可以破坏,所以我不认为这是真正的好处。

我的网页搜索没有太多关于这个话题保存”developer preference”,这不是真的一个原因。

在重复和重命名主题时使用儿童主题有什么真正的好处吗?

最佳解决方案

儿童主题对于主要想要对其主题进行风格更改但不希望或者知道如何维护底层代码的用户很有用。 Grokking PHP /WordPress 主题开发与 grokking CSS 完全不同。

儿童主题对于想要对其主题进行小功能更改的用户也是有用的。这对于提供很多修改方法的主题特别有用:动作/过滤器钩子,可插拔功能等。这样的模块可以通过自定义插件轻松实现,但是这样的插件只适用于正确的主题是活跃的,所以把这个代码放在一个儿童主题中是非常有意义的。

如果你喜欢维护一个分叉的主题,并发现你的修改超过了一个孩子主题是合理的,那么通过一切手段:fork 主题。

这一切归结为对个人最终用户最有利的方法。

次佳解决方案

除了 Chip Bennets 的答案

像我这样的开发人员有自己的自定义框架,或者使用像 Genesis,Hybrid 这样的框架。这些框架不会捆绑太多的样式,而是更多的功能,如自己的模板和挂钩机制。有时还会像 CPT 或 CT 基础类,元框库,css 框架等等。通常只需简单地将所有的代码保存在分离的回收中,将它们捆绑在一个”Theme” 中,然后再使用您的子主题中的这些部分。

在我的情况下,我的框架/库/父主题没有什么比我的库部分的加载机制,我的钩子和 tempalting 和一个引导函数。在一个小题目中,我可以定义一个特定任务需要什么,添加单个任务模块或扩展父基类。最后但并非最不重要的:Child Theme 包含我所有的 UI 部分:样式,脚本,图像。

所以对于我和许多其他开发者来说,这只是一个整洁的方式来保持广义,有组织和可重复使用的东西。

第三种解决方案

儿童主题最大的用途之一就是 MUWP 实例。通常,在多站点安装中,相关网站共享一些或大多数主题,但可能需要具有一些自定义页面布局或元素样式。在这种情况下,使用儿童主题很有意义。相同的元素在父主题 (在实际上可能是基于重复的默认主题,根据您的假设) 的主题中被解决),需要不同的元素在儿童主题中被解决。

儿童主题的美妙之处在于,儿童主题本身就清楚地看到了儿童主题与父母主题之间的唯一区别。想知道父母与孩子主题有什么不同?孩子主题本身就是这些差异的总和。需要改变孩子主题的东西吗?您只需要查看几个规则和功能,而不是涉及整个主题的代码。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。