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

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

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

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

如何使用你的主题框架?

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

考虑如下:

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

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

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

  • 使用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. Java中hashcode,equals和==

    hashcode方法返回该对象的哈希码值. hashCode()方法可以用来来提高Map里面的搜索效率的,Map会根据不同的hashCode()来放在不同的位置,Map在搜索一个对象的时候先通过has ...

  2. 开源的rtsp实现

    开源的rtsp实现                            ============== -- by BeagleTam                                  ...

  3. Oracle 一次 锁表 处理小记

    同事说测试库上的一张表被锁了. 不能执行DML 操作. 锁表的准确说法应该是阻塞.之前的一遍blog里有说明: 锁 死锁 阻塞Latch 等待 详解 http://blog.csdn.net/tian ...

  4. 【转】ios app 应用内购买配置完全指南

    转自:http://blog.sina.com.cn/s/blog_4b55f6860100sbfb.html 第一印象觉得In-App Purchase(简称IAP)非常简单.Apple提供的大量文 ...

  5. CodeSmith模板生成

    转:http://blog.csdn.net/jason_ldh/article/details/9887073 一.            工具设置 CodeSmith默认是不支持中文的,那么我们必 ...

  6. ASP.NET MVC+Bootstrap个人博客之修复UEditor编辑时Bug(四)

    我的个人博客站在使用百度富文本编辑器UEditor修改文章时,遇到了一些问题,(不知是bug,还是我没有配置好).但总算找到了解决方法,在此记录下来. 小站首页文章列表显示为(显示去除HTML标签后的 ...

  7. Android中不混淆类中函数

    情况一:混淆不同的函数aTest.bTest -keep class com.zony.Test { void aTest(byte[], int, int); void bTest(String, ...

  8. Mybatis拦截器介绍

    拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法.Mybatis拦截器设计的一个初 ...

  9. CCMoveTo 等函数理解

    CCMoveTo: 使用CCMoveTo action来让对象从右侧屏幕外移动到屏幕左侧.注意可以通过指定duration参数控制这一过程需要多久,这里我们随机给他2-4秒的时间. CCCallFun ...

  10. JQuery插件的学习

    此前一直想就关于Jquery插件的开发,做一个深入的学习,由于各种原因,当然主要是自己太懒了...今天就系统分析一下Jquery插件的开发(参考了http://www.xprogrammer.com/ ...