自己算是写过一个主题,目前也在用( 这里 -> 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. MySQL数据库笔记四:MySQL的约束

    <1>概念 是一种限制,它是对表的行和列的数据做出约束,确保表中的数据的完整性和唯一性. <2>使用场景 创建表的时候,添加约束 <3>分类 1. default: ...

  2. Java实现文本中的关键字高亮,匹配所有长度

    这个方法还不完整,后面想起来再看,直接放代码 public static String getHeightlightWord(String textWord, String key){ StringB ...

  3. cpp编码规范要求

    1.所有头文件使用#ifndef #define #endif来防止文件被多重包含,命名格式当是: <PROJECT>_<PATH>_<FILE>_H_ 2.只有当 ...

  4. Python 3 中字符串和 bytes 的区别

    在Python中字符串和unicode真是傻傻分不清楚,在没搞懂两个区别时,你会发现程序报的错怎么改都是再报错,让你烦躁. 学习Python的时候,又重温了这部分内容,写了这个学习笔记. Python ...

  5. 【C/C++】内存对齐规则和实战

    内存对齐规则和实战 这篇文章是我的平时的一个笔记修改后来的.这里主要介绍一下内存对齐的规则,以及提供一些实战一下.几篇我觉得比较好的详细的介绍内存对齐的作用什么的博文会在文末附上. 规则 在开始实战前 ...

  6. ubantu32位 linux下hexedit的下载安装

    Hexedit软件介绍: hexedit是一个开源的完全免费的命令行软件,可用于在任何GNU / Linux操作系统下以十六进制和ASCII(美国信息交换标准代码)格式查看和编辑文件. 下载: 在so ...

  7. 内核模式构造-Event构造(WaitLock)

    internal sealed class SimpleWaitLock:IDisposable { //Enter()和Leave()中使用m_AutoResetEvent都将迫使调用线程做用户模式 ...

  8. 【BZOJ 3514】Codechef MARCH14 GERALD07 加强版

    题意 \(n\) 个点 \(m\) 条边的无向图,\(k\) 次询问保留图中编号在 \([l,r]\) 的边的时候图中的联通块个数.强制在线. \(n,m,k\le 2\times 10^5\) 题解 ...

  9. 学习使用C语言实现线性表

    线性表是最常用且最简单的一种数据结构.一个线性表是n个数据元素的有限序列,序列中的每个数据元素,可以是一个数字,可以是一个字符,也可以是复杂的结 构体或对象.例如:1,2,3,4,5是一个线性表,A, ...

  10. vue.js 简介

    Vue.js是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层 ...