自己算是写过一个主题,目前也在用( 这里 -> http://udonmai.com/ ),所以多少想说两句。

当初走上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 -> http://www.plaintxt.org/wordpress.html#sandbox, WordPress › Sandbox « Free WordPress Themes。该有的页面它基本都有,该要的数据基本都会有必要的函数负责输出,我们要做的,只是去调整负责每个页面的那个PHP文件,数据多了,那就去掉,少了,去查文档加进来。而且因为有了很多范例页面,我们自定义一个页面也是易如反掌。就像我自己的博客的首页,我就是用原来的一个页面改的。

- - -

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

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

大牛们是如何开发 WordPress 主题的?的更多相关文章

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

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

  2. 开发wordpress主题

    查看我的wordpress站点 第一步:下载wordpress安装包 官网下载==> 第二步:本地安装开发环境 官网给出的环境要求: 可以选择安装wamp/xampp集成PHP开发环境,安装很简 ...

  3. wordpress 主题开发

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

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

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

  5. 推荐5 款WordPress主题后台选项开发框架

    在开发WordPress 主题的时候,借用成熟的WordPress 主题后台选项开发框架可以为我们省下不少功夫.相信你接触过不少国人做的所谓“原创”主题,一看后台都是千篇一律的界面(连CSS 都懒得改 ...

  6. WordPress 主题教程:从零开始制作 WordPress 主题

    为什么要开发WordPress主题? WordPress主题由一系列文件和样式表单组成,这些文件和样式表单共同作用生成WordPress网站的外观.每个主题都不同,用户可以通过这些主题随心所欲地更换自 ...

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

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

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

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

  9. 决定如何开发你的WordPress主题框架

    在本系列教程的第一部分,我介绍了不同类型的主题框架并解释了它们是如何工作的. 在你开始建立你的主题框架之前,你需要考虑它是如何工作的,以及它将会被用来做什么,这样你才能从一开始就找到最合适的开发途径. ...

随机推荐

  1. sql DATEDIFF 函数

    sql  DATEDIFF 函数 今天的所有数据: 昨天的所有数据: 7天内的所有数据: 30天内的所有数据: 半个月的所有数据: 本月的所有数据: 上月的所有数据: 本年的所有数据: --查询今天是 ...

  2. Vue的三个点es6知识,扩展运算符

    Vue中的三个点在不同情境下的意思 操作数组 //里面放自己定义的方法 methods: { /** * 把数组中的元素孤立起来 */ iClick() { let iArray = ['1', '2 ...

  3. 《python解释器源码剖析》第7章--python中的set对象

    7.0 序 集合和字典一样,都是性能非常高效的数据结构,性能高效的原因就在于底层使用了哈希表.因此集合和字典的原理本质上是一样的,都是把值映射成索引,通过索引去查找. 7.1 PySetObject ...

  4. STM32定义变量位于指定的SRAM地址

    1.定义一个数组比如value[],让数组的首地址指向特定的SRAM地址,比如0x20000100 1)__align(8) uint8_t value[20] __attribute__((at(0 ...

  5. win10电脑配置

    微信 QQ 电脑管家 Chrome 坚果云 Sublime VLC 网易云音乐 Acrobat Reader DC PS git potplayer TeamViewer 有道云笔记/协作 百度网盘/ ...

  6. datax部署

    1.下载: https://github.com/alibaba/DataX Clone or download下载源码,拉到下面 Quick Start Download DataX下载地址 下载安 ...

  7. Linux——grep binary file

    原创声明:本文系博主原创文章,转载或引用请注明出处. grep命令是linux下常用的文本查找命令.当grep检索的文件是二进制文件时,grep命令会提示: $grep pattern filenam ...

  8. Linux之yum软件管理

    YUM yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题 yum特点 *可以 ...

  9. Winforms界面开发DevExpress v19.2:Map、Pivot Grid等功能增强

    DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...

  10. java8 Date Localdatetime instant 相互转化(转) 及当天的最大/最小时间

    Java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法 // Obtains an instance of Dat ...