在本系列教程的第一部分,我介绍了不同类型的主题框架并解释了它们是如何工作的。

在你开始建立你的主题框架之前,你需要考虑它是如何工作的,以及它将会被用来做什么,这样你才能从一开始就找到最合适的开发途径。

在这一课中,我将带领你逐一了解你需要考虑的每一个方面,包括你的框架是否面向公众开放,是非程序员还是开发人员使用它,以及你也许想添加的其他的一些功能。

要决定你的开发途径需分两步走:一,确定你的主题框架会如何使用;二,在此基础上,确认你需要包括的所有内容。

如何使用你的主题框架?

使用主题框架的途径会影响到你要包括的内容和构建框架的方式。

考虑如下:

  • 你的主题框架的受众——仅仅是你或其他的一些开发人员?
  • 你的主题框架会提供给几乎没有编程经验的开发人员或者用户使用吗?
  • 你的主题框架是否会面向公众开放?

仅仅是你或其他的一些开发人员?

如果你的框架只是为了满足你个人需要的话,在开发的时候你就只需要考虑你自己的需求了;但是,从长远来看,尽量把它从一开始就建立得尽可能稳健还是很有意义的,所以你应该:

  • 使用WordPress编码标准
  • 应用DRY(切勿复制自己)原则
  • 使用W3C验证检查器可以验证的代码,并确保你的代码是可以访问的。
  • 添加代码说明——即使别人不看你的代码,当你很多个月之后再次进行编写时,你也会惊奇地发现忘记一段代码是多么容易的一件事。
  • 使用版本控制框架的更新。

如果你的主题框架会被提供给其他的开发人员(或许就是你的同事)使用的话,那么除了要采用以上所有的做法外,你也许还需要:

  • 提供框架结构、函数和挂钩的概述文件。
  • 考虑你在代码上分享和协作的方式——使用一个协作系统会使这一切变得异常简单,例如GitHub
  • 记录下你的版本,或者将它们连接到“里程碑”(milestones)和/或在GitHub上释放。

提供给开发人员或用户?

一些主题框架是专门提供给不会编码的用户使用的,这些用户不用写任何代码就可以广泛地自定义主题框架,而另一些是给开发人员用的,会提供挂钩和函数以便他们可以用来自定义和拓展自己的框架。还有的两者都行,会有一个综合用户界面和一个API(应用程序界面)。

你的框架会被非开发人员使用并不意味着你要将它释放给公众——你也许有同事是网站设计师,你想赋予他们访问的权限,或者是让你的客户使用你的框架来自定义他们的网站。

如果你的框架面对的是不会编码的用户的话,你需要考虑:

  • 一个或更多的主题选项界面,以便你的用户可以自行定义。
  • 可以选择使用主题定制器来代替主题选项界面,优点是用户在定制主题的同时能直接地看到它们的变化,或者两者都行。
  • 小工具区域,允许用户在网页的不同地方添加他们自己的内容。
  • 菜单,以便用户可以浏览网站(包含菜单的区域也许不止一个,这个由你来决定)。
  • 子主题支持,以便用户能快速安装并创建一个工作网站。
  • 函数库,包含你想有的所有功能,比如滑块或灯箱特效。
  • 必要的说明文件和相关帮助,以便用户知道如何来使用你的所有成果(其中一些是非常有用的,但切记慢来,逐步完善)

如果你的目标受众是一些专业开发人员,他们会结合自己的子主题和/或插件一同使用你的主题框架,那么你可能要考虑上述的一些内容,但是你也需要去考虑包含下面列表中的功能:

  • 动作挂钩(action hooks)使得开发人员能将自己的代码插入到你的模板文件中,而不需要创建一个重复的模板文件。
  • 过滤挂钩(filter hooks)允许开发人员修改模板文件的输出内容。
  • 开发人员能在他们的子主题中使用自定义函数。
  • 模板部分和包含文件,以减少代码的重复。这样,在使用框架时你会从中受益许多,如果理论上需要在子主题中创建模板文件的话,其他的开发人员也会发现这十分有用。
  • 确保你的文件命名和结构的逻辑合理性,并要给这些文件添加相应的说明,这样人们才能很容易地找到他们。

公开与否?

如果你计划向公众发布你的框架的话,那么就有一整套另外需要考虑的事项:

  • 如果你要通过WordPress主题库提交你的框架作为一个主题的话,你需要遵守主题审查指南
  • 由于用户可能会在任意场景和网站类型中使用你的框架,你需要去测试你的框架是否能在各种环境中正常工作,也许你可以争取其他的用户和开发人员帮助你进行这方面的测试。
  • 某些类型的文档无论对开发人员还是用户来说都是必不可少的,当然这取决于你的目标受众。

您还需要考虑如何将你的框架市场化:即使它是免费的,如果你希望更多的人去使用它,那么你就需要通过一个网站来宣传它,其他的方式有社交媒体、搜索引擎优化(SEO)、第三方主题商店、口口相传、当地聚会、WordCamps大会(由 WordPress 用户自发组织的非盈利性质大会)等。

Elixir - Restaurant WordPress Theme

你的主题框架应该包括哪些内容?

你的主题的功能有很大一部分将由你刚确认的用户的需求来决定。在决定主题框架的受众时,如果有可能,可以问问你的受众的具体需求,然后列出你的主题将包含的一些功能特征。

这张列表会包括(但不仅限于)以下选择:

  • 模板文件(包括模板部分和包括文件)
  • 函数
  • 动作挂钩(action hooks)和过滤挂钩(filter hooks)
  • 小工具区域
  • 目录
  • 选项和设置界面
  • 主题定制器支持
  • 文件
  • 子主题

对于这些,需要确认:

  • 它的具体功能是什么
  • 它会做什么
  • 它的代码会在哪里出现

除了这些由不同用户群体决定的功能以外,你也许还想包含其他的一些功能,如:

  • 你的框架会具有一个内置的布局吗?这个布局是可配置的还是会通过子主题进行编码?
  • 这个功能在你的父主题中到底会有多少?一些框架具有极端最低样式,而其他人(比如我自己)采用面向对象的CSS(OOCSS)会使得样式制作在子主题中变得更加简单。
  • 你的框架是响应式的还是通过子主题进行编码?如果你的父主题是响应式的,你需要确保在子主题这个OOCSS能派上用场的领域中,它不会被任何布局样式所覆盖。
  • 你会为你的框架增加SEO(搜索引擎优化)功能,是由WordPress来提供,还是由用户使用一个独立的插件来添加呢?                                         
  • 如果有必要在你的框架内进行添加或者通过子主题进行添加,你会将诸如滑块、画廊、背景图像等等包括进去吗?

这张列表可能随着时间的推移,随着你自己和用户的需求的变化而发生改变。从一开始就要确保你的框架很容易进行拓展,并且无论何时你都能添加新的功能。

小结

开发出你自己的主题框架可以说是一大创举。从长远来看,这将节省你很多的开发时间,但是这也要花费大量的工作。

花一些时间去了解使用主题框架的受众,以及他们到底需要什么样的功能,因为这无论对于自己还是其他用户,都很有意义和价值,并且将来如果想再对框架进行扩展和修改就会容易得多。

决定如何开发你的WordPress主题框架的更多相关文章

  1. WordPress 主题框架是如何工作的

    主题框架可以说是无比强大的!对于非技术型的 WordPress 用户来说,主题框架使得建立一个独一无二并看起来像是运行一个量身定制的主题的网站成为可能,并且对于 WordPress 开发者来说,它们能 ...

  2. wordpress 主题开发

    https://yusi123.com/3205.html https://themeshaper.com/2012/10/22/the-themeshaper-wordpress-theme-tut ...

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

    自己算是写过一个主题,目前也在用( 这里 -> http://udonmai.com/ ),所以多少想说两句. 当初走上web开发的路之后最想干的事情就是写个自己的WP主题...所以网上搜罗了很 ...

  4. 黄聪:《跟黄聪学WordPress主题开发》

    又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库 ...

  5. WordPress 主题开发 - (三) 开发工具 待翻译

    Before we get started building any WordPress Theme, we’re going to need to get our development tools ...

  6. 从无到有开发自己的Wordpress博客主题---Wordpress主题的构造

    在这篇教程中,主要是对Wordpress的主题的构造进行分析,以方便今后的开发工作. 本来打算就引用一下别人已经有的文档就好了,但还是想从头到尾捋一遍,也方便自己梳理学习. 1.Wordpress主题 ...

  7. 开发Wordpress主题时没有特色图片的功能

    在自己开发Wordpress主题的时候,发现右下方没有了之前见到的特色图片(Featured Image)功能模块 1.找到后台右上方的显示选项模块,下拉之后启用即可 2.如果以上步骤找不到该选项,那 ...

  8. WordPress 主题开发:从入门到精通(必读)

    本专栏介绍如何开发设计你自己的 WordPress 主题.如果你希望了解更多如何安装和应用主题的内容,请参阅应用主题文档.本文的内容不同于应用主题,因为所讨论的是编写代码去构建你自己的主题的技术内容, ...

  9. WordPress 主题开发 - (一) 前言 待翻译

    原文出自: http://themeshaper.com/2012/10/22/the-themeshaper-wordpress-theme-tutorial-2nd-edition/ THE TH ...

随机推荐

  1. android gallery 自定义边框+幻灯片

    最近在项目中用到图片轮播,试了Gallery,ViewFlipper,ViewPager,感觉Gallery最符合需求,但是Gallery的系统边框很难看,项目中要求用自己的背景图片. 下面来看一下使 ...

  2. Android中shape中的属性大全

    ---恢复内容开始--- <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!- ...

  3. [转帖]Asp.NET 弹出页面

    原文链接:http://www.cnblogs.com/adi-liu/archive/2008/07/18/1246091.html ASP.NET 弹出对话框和页面之间传递值的经验总结 今天碰到一 ...

  4. HDU 1232 畅通工程 (并查集,常规)

    题意:中文题目 思路:按照HDU1213来做.http://www.cnblogs.com/xcw0754/p/4607813.html #include <bits/stdc++.h> ...

  5. sublime3 常用功能总结

    介绍几个常见的功能: l 自动完成:自动完成的快捷键是Tab和Enter,如果在html文件中,输入cl按下tab或Enter,即可自动补全为class=””:加上zencoding后,更是如虎添翼, ...

  6. 《C++ Primer 4th》读书笔记 第8章-标准IO库

    原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3936457.html

  7. 关于Android Studio升级到2.0后和Gradle插件不兼容的问题

    今天升级AS到2.0后,用AS在真机上调试,发现报了如下错误: This version of Android Studio is incompatible with the Gradle Plugi ...

  8. HDU5780 gcd (BestCoder Round #85 E) 欧拉函数预处理——分块优化

    分析(官方题解): 一点感想: 首先上面那个等式成立,然后就是求枚举gcd算贡献就好了,枚举gcd当时赛场上写了一发O(nlogn)的反演,写完过了样例,想交发现结束了 吐槽自己手速慢,但是发了题解后 ...

  9. [irving] C# Windows Beep 调用声音文件

    方法一:Console.Beep(); 方法二:可以用Console.WriteLine("/a");来代替Beep(). MSDN:http://msdn.microsoft.c ...

  10. 《Python CookBook2》 第一章 文本 - 控制大小写 && 访问子字符串

    控制大小写 任务: 将一个字符串由大写转成小写,或者泛起到而行之. 解决方案: >>> a = 'a'.upper() >>> a 'A' >>> ...