大牛们是如何开发 WordPress 主题的?

当初走上web开发的路之后最想干的事情就是写个自己的WP主题。。。所以网上搜罗了很多资料,但是说实在的鲜有那种一下把人点通的教程出现。不是说没有教程就写不了,但是如果能有一个说得清楚的讲解,比起自己摸索实在是省事太多。

当初一开始看的是我爱水煮鱼博客上发布的一个教程 -> WordPress 主题教程:从零开始制作 WordPress 主题,我下了PDF,很容易找。这个教程很老了,但是对于什么都不清楚的人而言至少能给我们以全局的理解,到底开发WP主题是什么意思,是个什么样的过程。这里还有一个国外的教程可供擦考 -> The ThemeShaper WordPress Theme Tutorial: 2nd Edition

看完这个之后心里就算是有个框架和大概了,知道其实就是在主题目录里建一些PHP文件和HTML、CSS以及可能有的JS文件。PHP文件一般而言都是一个文件对应一个页面,比如首页,存档页,日志页等。然后最关键的来了,那就是这些PHP文件内允许我们调用WP提供的函数。函数的文档就如@吴钊说的在这里 -> Template Hierarchy « WordPress Codex。里面有五花八门的函数可供使用,比如一篇博客其内容的输出,谋篇博客它的标签的输出等等。其实也就是数据来源。

我们通过PHP来获取数据,然后整合进HTML,配以一定的CSS和JS修饰,一个主题其实就完成了。但是这样的主题其实并不优美,比如一个文件竟然就是一个页面。通常来讲,写WP主题我们并不追求代码的质量,能用就行(这一定是我的误解)。

似乎一切都很简单?其实并不是这样的,因为每个页面需要调用些什么函数以及函数怎么搭配使用,并不是那么容易理清楚的,毕竟很多功能对应的函数又不唯一,我们无法在短时间内合理地做出选择。

那么这个时候,我个人更倾向于主题开发框架,也可以叫作模板。我也更推荐大家直接用它们来开发。那么先来看看模板啊框架啊都是些什么东西吧 -> 最佳WordPress主题框架

其实这里面还分很多种,我大致把他们分成框架、工具套件以及沙盒。

1.框架
比如这个,Hybrid WordPress Theme,它就是一个全息的开发框架,它的理念在于其自身就是一个主题,而我们所要建的主题是它提供主题的子主题,我们通过PHP的对象继承等特性来从父主题的功能上继承很多基础的东西,然后再在我们自己的文件上做修改以自定义。这种方法显然比较「高级」,也是目前比较流行的一种。

2.工具套件 然后是工具类框架,它们不提供必须的继承,而是给我们封装自己的一套API,把很多功能更直接地暴露给我们使用。这一类我曾经搜到过,不过暂时没有很典型的代表。

3.二次开发,沙盒 最后是沙盒,其实这是我自己起的名字,弄玄乎了。通俗说就是在原有的空白的精简的主题的基础上迭代开发自己的特性,也就是就是修改一个空白主题。我就是用的这种方式,而选择的空白主题也是非常有名的sandbox ->plaintxt.org/wordpress., WordPress › Sandbox « Free WordPress Themes。该有的页面它基本都有,该要的数据基本都会有必要的函数负责输出,我们要做的,只是去调整负责每个页面的那个PHP文件,数据多了,那就去掉,少了,去查文档加进来。而且因为有了很多范例页面,我们自定义一个页面也是易如反掌。就像我自己的博客的首页,我就是用原来的一个页面改的。


再仔细看问题,我发现楼主似乎就框架类没有自己实践过,然后二次开发所基于的简单主题也体验过一些。所以我个人认为你或许可以试试看类似Hybrid的那个框架,它有免费部分以及一定的免费教程(类似的开发框架应该还有不少)。我自己理解的题主的本意就是想了解更多元更全面的开发主体的形式,进而找到最理想的哪一种。那么多尝试总是好的。

但是WP近来功能狂增,代码量和API也增加不少,虽然codex上梳理得比较清楚,但是如果想完全搞清楚所有的细节,我觉得就学习性价比来说是很差的。而且WP的代码众所周知的不是优秀PHP程序的典范。如果是为了学习,我更建议看其他的项目,类似Welcome! - Laravel PHP Framework。而如果是为了开发WP主题来做推广和运营等,那么其实不用太在意过分的细节,看的几个适合迭代开发的空白模板源码即可。