时间:2021-07-01 10:21:17 帮助过:14人阅读
如果你使用了一段时间的第三方框架之后,发现其代码臃肿并缺乏灵活性,并对此感到十分沮丧的话,又或者你仅仅是想能完全掌控你自己的代码,那么建立一个你自己的主题框架无疑就是最好的选择了!
在本系列教程中,你将学习如何去创建你自己的 WordPress 主题框架,从而为你自己或者你的客户建立一个网站,又或者发布分享给其他用户。你将会经过以下几个阶段的学习,包括创建具备框架基础的父主题、添加额外的功能、钩子(也可以叫“挂钩”)等等。同时,你也将会学习如何在你的子主题和插件中使用这些技巧,并且知道如何向公众公开分享你的代码等等。
但是在开始之前,你需要知道主题框架是如何工作的,并且到底是什么使得它们不同于一个标准父主题。
我花了一些时间开发了两个主题框架,分别应用于两种类型的客户网站,随着时间的推移我不断地加强和改进它们的一些应用。我也曾与第三方合作开发过一些主题框架。以我的经验来看,一个主题框架应该有以下几个主要特点:
上述第一点和第二点是最根本的——如果没有一个父主题,你就不会有一个主题框架。而一个不具备那些钩子和函数的父主题仅仅只能算是一个基本父主题,不能说是一个真正的主题框架。
以上所述就是关于主题框架的部分了,但它们究竟是如何运作的呢?让我们先来看看一个主题框架的要素:
AD:Web Studio
父主题和子主题
一个主题框架的主要组成成分是父主题,它可以用两种方式来设计:
由于主题框架的关键特征之一是DRY原则,所以只要有可能,你的父主题就会利用模板部件和包含文件?,这意味着你可以在你的主题的多个位置访问同一代码。这也使得你在子主题中重新改写代码变得更加容易,因为你只需更换一个模板部件或者是创建一个包含文件就行了。
暂时我不会在这里解释父主题和子主题的概念,因为在“子主题教程”中会有相关的介绍。虽然很多主题框架配备了一系列支持自身的子主题,但是如果你想要有其他更适合自己的子主题就只有自己动手开发了。
如果你正在开发自己的主体框架,我建议你创建至少一个“初始”子主题,以避免重复参与制定每个项目的工作:你可能会针对不同类型的项目决定去创建多个子主题作为其基础,例如一些子主题博客和非博客网站。
动作挂钩和过滤挂钩
当添加自定义代码或更改主题的行为方式时,一个主题框架会包括一系列与子主题和插件相联系的挂钩:
在早期阶段花一些时间来考虑你想要包含什么挂钩是非常值得的,因为这样你就知道什么内容需要通过一个钩子来包含进去,什么可以直接编写到你的模板文件之中。你会在接下来的教程中了解到这些。
函数
你的主题框架也可能包括一系列的函数。其中的一些会与你已经定义过的动作挂钩和过滤挂钩相钩连,而其他的一些则是例如模板标签之类的函数,并且子主题可以使用这些函数。
如果你曾在一些客户网站上使用过任何自定义函数,那么你也可以将它们添加到你的主题框架之中。另外,你不必激活所有的函数:你只需要在你的子网站使用 add_action() 函数激活跟父主题相关的函数就行。
主题选项
主题选项界面对任何复杂的主题来说都是很有用的,对于非技术用户来说,更是如此。一些主要的主题框架都会在自己的管理区域内包含多个主题选项界面,其选项包括开关功能、修改布局、添加内容和改变设计元素,如颜色、背景图片、字体和标题图像等等。
您可以选择使用主题定制器来完成您的许多选项,其优点是可以让你的用户在定制主题的同时能直接地看到它们的变化。对于Edupress主题框架,我便采取了这种做法,其中的学校网站是我和马克·威尔金森一起开发的。
小工具区域
你是否需要选择添加一系列小工具区域将取决于你的主题框架的受众:如果仅仅是你自己或者是一个小团队的开发人员来使用的话,你也许并不需要在标准侧边栏和页脚上面添加任何小工具区域。
但是,如果你的主题框架面对的是非技术用户的话,你可以通过在主题框架的各个地方注册多个小工具区域从而给予其更多的灵活性。你也可以在网站头部、标准侧栏和页脚中,在内容之前和/或之后,以及在页脚下方注册小工具区域。
我的客户网站所使用的主题框架在页脚中包含四个小工具区域:主题会检查哪些被填充了并据此添加CSS类,因此被填充的小工具区域将会各自占据页面适当的宽度。
你的小工具区域可能会被直接编写到你的模板文件中,或者你可能会决定(就像我一样)通过动作挂钩将其添加到您网站的相关位置。这意味着它们可以在子主题中被覆盖,无论是可供选择性的小工具区域还是自定义代码。
脚本
如果一个给定的脚本很可能被一些建立在你自己主题框架之上的网站所使用,或者如果你的用户是非技术型的,你又想要提供更多的选项,那么你可以在你的框架中包含一些特定的脚本,如一个滑块或灯箱特效脚本。这可以让用户无需去安装额外的插件,但如果实际上这些脚本并非必要,那么这些代码就会显得臃肿,这也是它的不足之处。
同样的,这将取决于你的受众和预期的需求:如果它只是你用来工作的框架,我建议使用这些脚本开发(或标识)这些插件,什么时候需要便可以拿来使用。
如果你真的包含了这些脚本,那么就等于是包含了在主题选项界面上的启用和禁用选项。
可扩展性
如果目前你的框架对某一系列网站非常有用,那么在将来你也许希望它具有可扩展性。构成框架核心的父主题相当于是这个生态系统的心脏,你和你的主题用户将会为自己的网站进一步完善开发并添加更多的选项和功能。这将包括:
它还可能包括一些对于其他想要使用你的框架的开发人员有用的文档:最重要的主题框架配备了大量的文档,开发人员可以用来自定义他们在框架上建立的网站或者为其他用户创建一些子主题或插件。
小结
主题框架是 WordPress 开发者武器库中一个十分强大的工具。正如我们所看到的,它不仅对成千上万使用其来创建自定义 WordPress 网站的所有者(非技术型)来说至关重要,对任何其他的开发者来说,也是一个不可多得的工具,无论这些开发者是想为自己还是为其客户创建多种多样的网站。
主题框架通常有一些这样的特征:可扩展性和灵活性,而且让你或者你的用户能够很容易地通过使用子主题,以及访问相关函数和你的框架所提供的钩子来自定义网站。
我们已经知道了主体框架是如何工作的,在这个系列接下来的课程中,你会了解你的框架需要做什么,它需要为谁工作等问题,而这将帮助你决定你的主题框架最合适的发展途径。
版权声明:转载请注明来源网址
以上就介绍了WordPress 主题框架是如何工作的,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。