WordPress 主题框架是如何工做的

主题框架能够说是无比强大的!对于非技术型的 WordPress 用户来讲,主题框架使得创建一个独一无二并看起来像是运行一个量身定制的主题的网站成为可能,而且对于 WordPress 开发者来讲,它们可以帮助你在运用DRY(切勿复制本身)原则的同时,快速创建起一个自定义网站。web

若是你使用了一段时间的第三方框架以后,发现其代码臃肿并缺少灵活性,并对此感到十分沮丧的话,又或者你仅仅是想能彻底掌控你本身的代码,那么创建一个你本身的主题框架无疑就是最好的选择了!编程

在本系列教程中,你将学习如何去建立你本身的 WordPress 主题框架,从而为你本身或者你的客户创建一个网站,又或者发布分享给其余用户。你将会通过如下几个阶段的学习,包括建立具有框架基础的父主题、添加额外的功能、钩子(也能够叫“挂钩”)等等。同时,你也将会学习如何在你的子主题和插件中使用这些技巧,而且知道如何向公众公开分享你的代码等等。框架

可是在开始以前,你须要知道主题框架是如何工做的,而且究竟是什么使得它们不一样于一个标准父主题。函数

我花了一些时间开发了两个主题框架,分别应用于两种类型的客户网站,随着时间的推移我不断地增强和改进它们的一些应用。我也曾与第三方合做开发过一些主题框架。以个人经验来看,一个主题框架应该有如下几个主要特色:工具

  • 一般它主要由一个父主题组成,这个父主题会被设计成能与子主题联合使用。在某些状况下,父主题也会单独使用,可是在其余一些状况下,父主题非得和子主题连在一块儿才能使用——WordPress 法典将其分别定义为“基础/入门主题”和“代码库”。
  • 一般它包括一些能够被子主题和插件利用的钩子和函数。你的主题框架是整个生态系统的基础,它还包括部分与框架钩连的插件。
  • 若是是给由不会编程的用户使用,它会包括主题选项页面,这样可让用户根据本身的需求来自定义主题。设计、布局、功能和内容等等均可以是多样且混合的。在某些状况下,一些功能能够经由主题定制器来提供。
  • 它可能包括多个小工具区域,于是非技术用户能够经过 WordPress 小工具(包括你专门为框架编写的经过插件添加的小工具)添加内容或代码。
  • 它可能还包括脚本库功能,如 jQuery 滑块或灯箱特效。根据你和用户的须要,你可能会须要在主题框架中将这些合并到一块儿,或提供一些与框架相钩连的插件。
  • 一般它是可扩展的,并能用钩子让你经过子主题和相关插件扩展其功能。

上述第一点和第二点是最根本的——若是没有一个父主题,你就不会有一个主题框架。而一个不具有那些钩子和函数的父主题仅仅只能算是一个基本父主题,不能说是一个真正的主题框架。布局

以上所述就是关于主题框架的部分了,但它们到底是如何运做的呢?让咱们先来看看一个主题框架的要素:学习

  • 父主题和可供选择的子主题
  • 动做和过滤挂钩
  • 函数
  • 主题选项
  • 小工具
  • 脚本
  • 可扩展性

AD:Web Studio字体

父主题和子主题

一个主题框架的主要组成成分是父主题,它能够用两种方式来设计:网站

  • 做为初始主题,能够自行经过主题选项界面或主题定制器来自定义。这方面的例子包括 Atahualpa  和 Thematic。这两个能够做为不使用子主题的独立主题的典范。
  • 因为网站的一个基础须要经过一个子主题来添加,因此若是没有这个子主题的话,主题框架将不能有效地运用于网站。这样的例子有Hybrid Core 和 Genesis。这些将包括一些基本的代码,你一般会在一个有着一系列钩子和函数的主题中找到,这些钩子和函数能够经过子主题加以利用,固然也能够经过相关插件。全部这些便构成了适用于主题框架的API(应用程序界面)。

因为主题框架的关键特征之一是DRY原则,因此只要有可能,你的父主题就会利用模板部件和包含文件​,这意味着你能够在你的主题的多个位置访问同一代码。这也使得你在子主题中从新改写代码变得更加容易,由于你只需更换一个模板部件或者是建立一个包含文件就好了。插件

暂时我不会在这里解释父主题和子主题的概念,由于在“子主题教程”中会有相关的介绍。虽然不少主题框架配备了一系列支持自身的子主题,可是若是你想要有其余更适合本身的子主题就只有本身动手开发了。

若是你正在开发本身的主体框架,我建议你建立至少一个“初始”子主题,以免重复参与制定每一个项目的工做:你可能会针对不一样类型的项目决定去建立多个子主题做为其基础,例如一些子主题博客和非博客网站。

动做挂钩和过滤挂钩

当添加自定义代码或更改主题的行为方式时,一个主题框架会包括一系列与子主题和插件相联系的挂钩:

  • 行动挂钩(Action hooks)会出如今代码中的多个地方,使你可以经过主题框架中编写的函数将相关代码添加到你的模板文件中,而这个主体框架能够经过子主题来覆盖。我本身的主题框架大量地运用了动做挂钩,这些挂钩在全部的模板文件中都有提供,从而让用户能够在诸如小工具区域、联系方式等内容上自由发挥,并根据须要随时随地调用行动按钮和站点特定代码。
  • 过滤挂钩(Filter hooks)能够用来改变使用子主题或特定插件行为的方式,例如自定义循环、修改静态内容等等。任何静态文本(或从你的网站外部调用的代码)应该包裹在一个过滤器内,以便它能够根据子主题的须要而变化。

在早期阶段花一些时间来考虑你想要包含什么挂钩是很是值得的,由于这样你就知道什么内容须要经过一个钩子来包含进去,什么能够直接编写到你的模板文件之中。你会在接下来的教程中了解到这些。

函数

你的主题框架也可能包括一系列的函数。其中的一些会与你已经定义过的动做挂钩和过滤挂钩相钩连,而其余的一些则是例如模板标签之类的函数,而且子主题可使用这些函数。

若是你曾在一些客户网站上使用过任何自定义函数,那么你也能够将它们添加到你的主题框架之中。另外,你没必要激活全部的函数:你只须要在你的子网站使用 add_action() 函数激活跟父主题相关的函数就行。

主题选项

主题选项界面对任何复杂的主题来讲都是颇有用的,对于非技术用户来讲,更是如此。一些主要的主题框架都会在本身的管理区域内包含多个主题选项界面,其选项包括开关功能、修改布局、添加内容和改变设计元素,如颜色、背景图片、字体和标题图像等等。

您能够选择使用主题定制器来完成您的许多选项,其优势是可让你的用户在定制主题的同时能直接地看到它们的变化。对于Edupress主题框架,我便采起了这种作法,其中的学校网站是我和马克·威尔金森一块儿开发的。

小工具区域

你是否须要选择添加一系列小工具区域将取决于你的主题框架的受众:若是仅仅是你本身或者是一个小团队的开发人员来使用的话,你也许并不须要在标准侧边栏和页脚上面添加任何小工具区域。

可是,若是你的主题框架面对的是非技术用户的话,你能够经过在主题框架的各个地方注册多个小工具区域从而给予其更多的灵活性。你也能够在网站头部、标准侧栏和页脚中,在内容以前和/或以后,以及在页脚下方注册小工具区域。

个人客户网站所使用的主题框架在页脚中包含四个小工具区域:主题会检查哪些被填充了并据此添加CSS类,所以被填充的小工具区域将会各自占据页面适当的宽度。

你的小工具区域可能会被直接编写到你的模板文件中,或者你可能会决定(就像我同样)经过动做挂钩将其添加到您网站的相关位置。这意味着它们能够在子主题中被覆盖,不管是可供选择性的小工具区域仍是自定义代码。

脚本

若是一个给定的脚本极可能被一些创建在你本身主题框架之上的网站所使用,或者若是你的用户是非技术型的,你又想要提供更多的选项,那么你能够在你的框架中包含一些特定的脚本,如一个滑块或灯箱特效脚本。这可让用户无需去安装额外的插件,但若是实际上这些脚本并不是必要,那么这些代码就会显得臃肿,这也是它的不足之处。

一样的,这将取决于你的受众和预期的需求:若是它只是你用来工做的框架,我建议使用这些脚本开发(或标识)这些插件,何时须要即可以拿来使用。

若是你真的包含了这些脚本,那么就等因而包含了在主题选项界面上的启用和禁用选项。

可扩展性

若是目前你的框架对某一系列网站很是有用,那么在未来你也许但愿它具备可扩展性。构成框架核心的父主题至关因而这个生态系统的心脏,你和你的主题用户将会为本身的网站进一步完善开发并添加更多的选项和功能。这将包括:

  • 子主题或初始主题——这些名单极可能随着时间的推移而有所变化,特别是若是你向公众发布了你的主题。
  • 专为你的框架设计的插件每每要经过框架特定的挂钩激活。

它还可能包括一些对于其余想要使用你的框架的开发人员有用的文档:最重要的主题框架配备了大量的文档,开发人员能够用来自定义他们在框架上创建的网站或者为其余用户建立一些子主题或插件。

小结

主题框架是 WordPress 开发者武器库中一个十分强大的工具。正如咱们所看到的,它不只对成千上万使用其来建立自定义 WordPress 网站的全部者(非技术型)来讲相当重要,对任何其余的开发者来讲,也是一个不可多得的工具,不管这些开发者是想为本身仍是为其客户建立多种多样的网站。

主题框架一般有一些这样的特征:可扩展性和灵活性,并且让你或者你的用户可以很容易地经过使用子主题,以及访问相关函数和你的框架所提供的钩子来自定义网站。

咱们已经知道了主体框架是如何工做的,在这个系列接下来的课程中,你会了解你的框架须要作什么,它须要为谁工做等问题,而这将帮助你决定你的主题框架最合适的发展途径。

相关文章
相关标签/搜索