问题描述
我正在建立一个主题,作为我正在工作的公司的其他网站的例子。在另一个项目中,我们使用了 「混合父母主题」,并且很容易构建,但很难维护网站。
我更喜欢 Starter Theme 方法,另一位开发人员复制主题并从中创建。 Parent-> Child 给开发人员带来了太多的自由,使代码乱七八糟。例如,我不知道是否在孩子或父母身上调用了某些东西。
我想听听你的意见:
-
父母主题更好?
-
入门主题更好?
-
他们每个人的利弊是什么?
谢谢。
最佳解决方案
我完全同意 Rarst 。我只想添加一些小东西。
注意:我区分父母主题和框架。在我的回答中,我认为像 TwentyEleven 这样的父主题,它主要是为特定的网站创建的,而不是框架。
入门主题:
优点
-
易于在 HTML 级别进行自定义。我的意思是打开
<div>
,一个特定元素的自定义 CSS 类。为个人博客创建一个非常小的主题是一个很好的方式,您不需要父主题提供的许多东西 (或至少如果您使用父主题/框架,则必须钩住删除它们) 。您还可以回应 HTML 的特殊部分,如iframe
,引用另一个网站或只是一个’Hello text’ 比使用父主题更容易。 -
不需要从父主题复制模板文件,只是为了改变小事情。
-
不需要学习像钩子 Map,自定义语法,自定义函数等新的东西。这些东西是开发人员喜欢的,但不是所有的用户。
缺点
-
因为它是一个开始,你必须做许多事情来完成你的主题:CSS,自定义模板等。如果你太懒,你可能不想这样做!
家长主题:
优点
-
有一个完整的设计,您可以通过更改
style.css
中的小线,轻松调整,如更改颜色,字体大小等。 -
是一个完整的主题,这意味着你可以马上就可以,而不必担心像评论模板,单页模板等等。
-
有人为你修造了!
缺点
-
父主题如果大多符合您的要求,应该考虑一下,所以您可以尽可能少调整。否则这是一场噩梦
-
定制的能力不算太高。我不是指您可以在框架中看到的钩子系统 (见下面的框架) 。如果要强烈自定义它,您必须重写大多数模板文件 – 这意味着您正在重新创建主题,而不是使用父主题的目的。
框架:
优点
-
一切都可用:框架通常作为一个 all-in-one 解决方案,因此它具有很好的创建任何类型的网站的能力。你需要自定义标志?选色器?拖曳下降?主题布局?你已经有了他们在你的手中。
-
如果您熟悉它,可以更快地构建网站
-
有一个完整的钩子系统,允许用户钩在很多地方来改变框架提供的许多事情
-
高水平的定制:不仅在钩子系统中,而且像 Catalyst,Headway 这样的许多框架使您能够自定义几乎所有的元素,而不用 CSS 或钩子。
缺点
-
用户必须学习框架 (挂钩系统,熟悉其功能,设置,甚至新术语) 才能有效地使用它。我认为这是框架的最大缺点,因为 WP 已经有很多东西需要学习,并不是所有的用户都想学习一个新的东西,只是为了更好地使用 WP 。这些东西是开发人员喜欢的,但不是所有的用户。用户只是使用,不学习和定制。
-
冗余代码:框架的某些部分与 WP 功能重合,导致重复。示例可以是
genesis_meta()
(不需要,因为我们有wp_head
) 。 -
性能:因为框架有一切需要=> 它必须加载所有您可能根本不使用的管理员/前端所需的文件。对于这一点,我更喜欢 Hybrid Core 加载其文件 (通过使用
require_if_theme_supports
功能) -
默认的外观通常是最小和不好的。我们必须做很多工作,使设计完成。如果您使用的是起始主题,则使用钩子而不是起始主题中的自定义模板。
-
框架有自己的哲学,导致不同的方式来构建框架=> 导致许多框架=> 我们不知道哪一个是最适合我们的 (特别是当它们是溢价时) 。这不是太好,因为如上所述,框架对开发人员有好处,开发人员需要深入了解代码,看看它是如何好的!如果框架是溢价的话,那个门就是看!
最后的事情:所有的起始主题& 父母主题& 框架可以用于任何网站,如果您可以轻松自定义以实现最终结果。所有情况都没有一个解决方案。我们必须选择哪一个可以帮助我们,也许这次起始主题是好的,但在另一个时间 – 一个框架。顺便说一句,与所有人合作可以给我们很多经验,帮助我们在许多情况下,不仅在创建主题时!
次佳解决方案
主题工作流平衡是几个因素的结合:
-
代码量,个人到站点
-
代码量,站点之间共享
-
并入上游变化
这些都可以是重要的,而且每个都可能是不重要的。
父母主题模式满足所有这些相当好,但不是很好。您可以清楚地分离共享和单独的代码,以及直接的上游更新 (如果使用第三方父主题) 。当任何要求比平常更大时,它开始分手 – 很多单独的代码或许多共享代码在第三方父主题中不容易混合。
起始主题另一方面是非常专业的模特儿。它有利于个人网站,但不赞成上游更改和共享代码。一旦你创建自己的主题,所有的负担,移动代码进出它是在你身上。
更新的趋势是将框架分解为 plugin-like 组件,而不是完全运行父主题。如果你熟悉 Hybrid 作为父母主题,看看 Hybrid Core 。这种方法本质上是在父母/孩子之上的改进,上游更新更容易受到框架而不是整个主题的限制。
简而言之 (在这里有点主观):
-
启动器适合个人网站
-
父母/孩子适合多个网站,没有太多的自定义
-
框架/父母/孩子可以适应任何事情和一切,但也更多地涉及开发
第三种解决方案
使用父主题的主要原因是允许更容易的更新 – 如果您只是直接使用主题并进行编辑,那么如果原始主题被更新,则必须重新应用所做的任何更改 (或将原始的更改合并回到你修改过的主题) 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。