自己算是写过一个主题,目前也在用( 这里 -> 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. mac下MySQL出现乱码的解决方法

    之前写过一篇Linux下MySQL出现乱码的解决方法,本文说下mac下的处理,其实处理方式是一样的,我电脑的mysql版本是5.7.26-log 网上很多帖子都说去/usr/local/mysql/s ...

  2. Ubuntu .tar.xz文件解压缩命令

    1.解压缩.tar.xz文件 这是两层压缩,外面是xz压缩方式,里层是tar压缩 所以可以分两步实现解压 $ xz -d filename.tar.xz $ tar -xvf filename.tar ...

  3. 数据库——Oracle(4)

    1 Oracle中常用字符处理函数:用来处理char,varchar以及varchar2类型数据. 1)length(列名/字符串):统计当前该列的列值/字符串中字符的个数 select ename, ...

  4. uva 1440 & uvalive 4597

    题目链接 题意: DAG的最小路径覆盖,一条边可以被重复覆盖多次,但是一次只能沿着DAG的方向覆盖一条链,问最少覆盖次数. 思路: 看了半天没有思路,所以去搜索了题解,然后发现是有源汇上下界的最小流, ...

  5. django之ajax结合sweetalert使用,分页器和bulk_create批量插入 07

    目录 sweetalert插件 bulk_create 批量插入数据 分页器 简易版本的分页器的推导 自定义分页器的使用(组件) sweetalert插件 有这么一个需求: ​ 当用户进行一个删除数据 ...

  6. VirtualBox:无法访问共享文件夹

    造冰箱的大熊猫@cnblogs 2019/5/9 问题:VirtualBox中安装Linux虚拟机,设置宿主机某个文件夹为虚拟机的共享文件夹.在虚拟机中,该共享文件夹显示为“sf_×××”,打开该文件 ...

  7. 计算机HDMI端口与电视机相连

     造冰箱的大熊猫@cnblogs 2019/2/27 打算通过HDMI接口将计算机桌面投影到电视机上,结果遇到问题,折腾了好一阵才搞定.现将这些问题记录下来 1.设备环境 计算机:使用Ubuntu 1 ...

  8. CUDA-F-2-1-CUDA编程模型概述2

    Abstract: 本文继续上文介绍CUDA编程模型关于核函数以及错误处理部分 Keywords: CUDA核函数,CUDA错误处理 开篇废话 今天的废话就是人的性格一旦形成,那么就会成为最大的指向标 ...

  9. numpy中np.max() 和 np.maximum() 的区别

    np.max(a, axis=None, out=None, keepdims=False) # 接收一个参数a # 取a 在 axis方向上的最大值 np.maximum(x, y) # 接收两个参 ...

  10. angularJS <input type="file> 图片的base64编码

    talk is cheap show me the code <input type="file" id="file" name="file&q ...