首发主题VS父主题?赞成与反对

时间:2012-12-04 作者:romulodl

我正在构建一个主题,作为我所在公司其他网站的示例。在另一个项目中,我们使用了混合父主题,很容易构建,但很难维护网站。

我更喜欢初学者主题方法,即另一个开发人员复制主题并从中创建。父->子代为开发人员提供了太多的自由,使代码混乱。例如,我不知道是孩子还是家长被打了电话。

我想听听你的意见:

什么时候父主题更好

3 个回复
最合适的回答,由SO网友:Anh Tran 整理而成

我完全同意Rarst. 我只想补充一些小东西。

Note: 我区分父主题和框架。在我的回答中,我考虑了像TwentyEleven这样的父主题,它主要是为特定的网站创建的,比框架少挂钩。

初学者主题:

Pros

<易于在HTML级别自定义。我是说开放式的<div>, 特定元素的自定义CSS类。这是一个很好的方法,可以为个人博客创建一个非常简单的主题,在这里你不需要父主题提供的很多东西(或者至少如果你使用父主题/框架,你必须钩住它们来删除它们)。您还可以像iframe 这指的是另一个网站或只是一个“Hello文本”,比使用父主题要容易得多

Cons

  • 因为这是一个初学者,你必须做很多事情来完成你的主题:CSS、自定义模板等等。如果你太懒了,你可能不想这么做

父主题:

Pros

  • 有一个完整的设计,您可以通过在style.css 例如更改颜色、字体大小等。这是一个完整的主题,意味着您可以立即使用它,而无需担心评论模板、单页模板等。有人为您构建了它

Cons

<如果父主题基本上符合您的要求,则应将其视为良好主题,因此您可以尽可能少地对其进行调整。否则这将是一场噩梦,定制的能力并不太高。我指的不是你可以在这里的框架中看到的挂钩系统(参见下面的框架)。如果您想对其进行强大的自定义,则必须重写大多数模板文件,这意味着您正在重新创建主题,而这不是使用父主题的目的

框架:

Pros

<一切都可用:框架通常是作为一体式解决方案制作的,因此它具有创建任何类型网站的强大能力。你需要定制标志吗?颜色选择器?&拖动;滴主题布局。。。你手里已经有了
  • 如果您熟悉网站,则可以更快地构建网站。li>
  • 有一个完整的挂钩系统,允许用户在多个地方挂钩,以更改框架提供的许多内容。不仅在挂钩系统中,而且在Catalyst、Headway等多个框架中,您可以在不接触CSS或挂钩的情况下自定义管理中的几乎所有元素
  • Cons

    <用户has to 学习框架(hook系统,熟悉其特性、设置,甚至新术语)以有效地使用它。我认为这是框架的最大缺点,因为WP已经有很多东西需要学习,而且并非所有用户都想学习新东西,只是为了更好地使用WP。开发人员喜欢这些东西,但不是所有用户都喜欢。用户是只使用而不是学习的人;自定义genesis_meta() (我们不需要wp_head).它必须为管理员/前端加载您可能根本不用的所有所需文件。对于这一点,我更喜欢Hybrid Core加载文件的方式(通过使用require_if_theme_supports 功能)
  • 默认外观通常是最小的和不好的。我们必须做很多工作才能完成设计。如果您使用的是starter主题,则过程类似,但您使用的是挂钩,而不是像starter主题中那样的自定义模板导致了许多框架=>我们不知道哪一个最适合我们(特别是当它们是高级的时候)。这并不太好,因为正如我上面所说的,框架对开发人员来说是好的,开发人员需要深入研究代码,看看它有多好!如果框架是高级的,那门就很好看
  • Last thing: 所有初学者主题(&A);父主题(&P);框架可以用于任何站点,如果您可以轻松地进行自定义以获得最终结果。并非所有情况都有一种解决方案。我们必须选择哪一个对我们帮助最大,也许这一次入门主题很好,但另一次是框架。顺便说一句,与他们一起工作可以给我们很多经验,在很多情况下都可以帮助我们,不仅仅是在创建主题的时候!

    SO网友:Rarst

    主题工作流平衡是多个因素的组合:

    各站点之间共享的代码量,包括上游变更,其中每一项都可能很重要,而每一项都可能不重要。

    父主题模型很好地满足了所有这些要求,但不是很好。您可以清楚地分离共享代码和单独代码,以及直接的上游更新(如果使用第三方父主题)。当任何需求变得比通常更大时,它就会开始分裂——许多单独的代码或许多共享代码不能轻易地混合在第三方父主题中。

    另一方面,初学者主题是非常专业的模型。它支持单个站点,但不支持上游更改和共享代码。一旦您将starter主题设置为您自己的主题,那么将代码移入和移出它的所有负担都在您身上。

    新的趋势是将框架分离为插件式组件,而不是完全运行父主题。如果您熟悉混合动力作为父主题,请查看混合动力核心。这种方法本质上是在父/子方法的基础上进行的改进,由于仅限于框架而非整个主题,上游更新变得更加容易。

    简而言之(这里有点主观):

    starter适合单个网站,父/子网站适合多个没有太多定制的网站,框架/父/子网站可以适应任何事情,但也更容易参与开发

    SO网友:anu

    使用父主题的主要原因是为了更方便地进行更新-如果您只需获取一个主题并直接对其进行编辑,那么如果原始主题得到更新,则必须重新应用所做的任何更改(或将原始主题中的更改合并回修改后的主题)。

    结束

    相关推荐

    StylesSwitcher或ThemesSwitcher,允许用户从移动设备切换回标准视图

    我用CSS创建了一个移动版的网站,所有样式都在一个样式表中(使用@media only screen and (max-width: 480px), only screen and (max-device-width: 480px) 定义移动样式)。当它都在一个样式表中时,它工作得很好。但我想允许用户切换回标准视图,即使他们从移动设备查看站点。我不知道如何允许用户覆盖@media, 所以我似乎有两个选择:(1)单独的样式表加上样式切换脚本,或者(2)单独的主题加上主题切换。理论上,样式切换器应该可以做到这