在你开始建立你的主题框架之前,你需要考虑它是如何工作的,以及它将会被用来做什么,这样你才能从一开始就找到最合适的开发途径。
在这一课中,我将带领你逐一了解你需要考虑的每一个方面,包括你的框架是否面向公众开放,是非程序员还是开发人员使用它,以及你也许想添加的其他的一些功能。
要决定你的开发途径需分两步走:一,确定你的 WordPress 主题框架会如何使用;二,在此基础上,确认你需要包括的所有内容。
如何使用你的主题框架?
使用主题框架的途径会影响到你要包括的内容和构建框架的方式。
考虑如下:
- 你的主题框架的受众——仅仅是你或其他的一些开发人员?
- 你的主题框架会提供给几乎没有编程经验的开发人员或者用户使用吗?
- 你的主题框架是否会面向公众开放?
仅仅是你或其他的一些开发人员?
如果你的框架只是为了满足你个人需要的话,在开发的时候你就只需要考虑你自己的需求了;但是,从长远来看,尽量把它从一开始就建立得尽可能稳健还是很有意义的,所以你应该:
- 使用 WordPress 编码标准
- 应用 DRY(切勿复制自己) 原则
- 使用 W3C 验证检查器可以验证的代码,并确保你的代码是可以访问的。
- 添加代码说明——即使别人不看你的代码,当你很多个月之后再次进行编写时,你也会惊奇地发现忘记一段代码是多么容易的一件事。
- 使用版本控制框架的更新。
如果你的主题框架会被提供给其他的开发人员 (或许就是你的同事) 使用的话,那么除了要采用以上所有的做法外,你也许还需要:
- 提供框架结构、函数和挂钩的概述文件。
- 考虑你在代码上分享和协作的方式——使用一个协作系统会使这一切变得异常简单,例如 GitHub 。
- 记录下你的版本,或者将它们连接到 「里程碑」(milestones) 和/或在 GitHub 上释放。
提供给开发人员或用户?
一些主题框架是专门提供给不会编码的用户使用的,这些用户不用写任何代码就可以广泛地自定义主题框架,而另一些是给开发人员用的,会提供挂钩和函数以便他们可以用来自定义和拓展自己的框架。还有的两者都行,会有一个综合用户界面和一个 API(应用程序界面) 。
你的框架会被非开发人员使用并不意味着你要将它释放给公众——你也许有同事是网站设计师,你想赋予他们访问的权限,或者是让你的客户使用你的框架来自定义他们的网站。
如果你的框架面对的是不会编码的用户的话,你需要考虑:
- 一个或更多的主题选项界面,以便你的用户可以自行定义。
- 可以选择使用主题定制器来代替主题选项界面,优点是用户在定制主题的同时能直接地看到它们的变化,或者两者都行。
- 小工具区域,允许用户在网页的不同地方添加他们自己的内容。
- 菜单,以便用户可以浏览网站 (包含菜单的区域也许不止一个,这个由你来决定) 。
- 子主题支持,以便用户能快速安装并创建一个工作网站。
- 函数库,包含你想有的所有功能,比如滑块或灯箱特效。
- 必要的说明文件和相关帮助,以便用户知道如何来使用你的所有成果 (其中一些是非常有用的,但切记慢来,逐步完善)
如果你的目标受众是一些专业开发人员,他们会结合自己的子主题和/或插件一同使用你的主题框架,那么你可能要考虑上述的一些内容,但是你也需要去考虑包含下面列表中的功能:
- 动作挂钩 (action hooks) 使得开发人员能将自己的代码插入到你的模板文件中,而不需要创建一个重复的模板文件。
- 过滤挂钩 (filter hooks) 允许开发人员修改模板文件的输出内容。
- 开发人员能在他们的子主题中使用自定义函数。
- 模板部分和包含文件,以减少代码的重复。这样,在使用框架时你会从中受益许多,如果理论上需要在子主题中创建模板文件的话,其他的开发人员也会发现这十分有用。
- 确保你的文件命名和结构的逻辑合理性,并要给这些文件添加相应的说明,这样人们才能很容易地找到他们。
公开与否?
如果你计划向公众发布你的框架的话,那么就有一整套另外需要考虑的事项:
- 如果你要通过 WordPress 主题库提交你的框架作为一个主题的话,你需要遵守主题审查指南。
- 由于用户可能会在任意场景和网站类型中使用你的框架,你需要去测试你的框架是否能在各种环境中正常工作,也许你可以争取其他的用户和开发人员帮助你进行这方面的测试。
- 某些类型的文档无论对开发人员还是用户来说都是必不可少的,当然这取决于你的目标受众。
您
还需要考虑如何将你的框架市场化:即使它是免费的,如果你希望更多的人去使用它,那么你就需要通过一个网站来宣传它,其他的方式有社交媒体、搜索引擎优化
(SEO) 、第三方主题商店、口口相传、当地聚会、 WordCamps 大会 (由 WordPress 用户自发组织的非盈利性质大会) 等。
你的主题框架应该包括哪些内容?
你的主题的功能有很大一部分将由你刚确认的用户的需求来决定。在决定主题框架的受众时,如果有可能,可以问问你的受众的具体需求,然后列出你的主题将包含的一些功能特征。
这张列表会包括 (但不仅限于) 以下选择:
- 模板文件 (包括模板部分和包括文件)
- 函数
- 动作挂钩 (action hooks) 和过滤挂钩 (filter hooks)
- 小工具区域
- 目录
- 选项和设置界面
- 主题定制器支持
- 文件
- 子主题
对于这些,需要确认:
- 它的具体功能是什么
- 它会做什么
- 它的代码会在哪里出现
除了这些由不同用户群体决定的功能以外,你也许还想包含其他的一些功能,如:
- 你的框架会具有一个内置的布局吗?这个布局是可配置的还是会通过子主题进行编码?
- 这个功能在你的父主题中到底会有多少?一些框架具有极端最低样式,而其他人 (比如我自己) 采用面向对象的 CSS(OOCSS) 会使得样式制作在子主题中变得更加简单。
- 你的框架是响应式的还是通过子主题进行编码?如果你的父主题是响应式的,你需要确保在子主题这个 OOCSS 能派上用场的领域中,它不会被任何布局样式所覆盖。
- 你会为你的框架增加 SEO(搜索引擎优化) 功能,是由WordPress 来提供,还是由用户使用一个独立的插件来添加呢?
- 如果有必要在你的框架内进行添加或者通过子主题进行添加,你会将诸如滑块、画廊、背景图像等等包括进去吗?
这张列表可能随着时间的推移,随着你自己和用户的需求的变化而发生改变。从一开始就要确保你的框架很容易进行拓展,并且无论何时你都能添加新的功能。
小结
开发出你自己的主题框架可以说是一大创举。从长远来看,这将节省你很多的开发时间,但是这也要花费大量的工作。
花一些时间去了解使用主题框架的受众,以及他们到底需要什么样的功能,因为这无论对于自己还是其他用户,都很有意义和价值,并且将来如果想再对框架进行扩展和修改就会容易得多。