WordPress是一个比较流行的博客CMS,并且不依赖于第三方框架。最近我阅读了它的源码,大体了解了它的整体设计实现,下面我做一些总结。我选取的是2.0版本,虽然比较旧,但总体代码量会少一些,也不会影响对整体流程的了解。
一、原理
WordPress是一个CMS,区别于博客的是它带有博客管理功能,方便使用者发布和管理他的博客文章。它整个是基于PHP语言的,当用户通过浏览器访问WordPress时,Web后台的处理流程如下:
1)apache服务器接收到进来的http请求,执行用户所要访问的目录和文件,当发现是用户访问的是php文件时,调用apache的php模块来执行这个文件。
2)php文件被执行,解析用户http请求参数,访问本地mysql数据库,按照业务逻辑进行处理,最后组装web页面。
3)php模块把生成的web页面返回给apache服务器,apache服务器再通过http响应返回给浏览器。
mysql数据库是内容,php处理代码是逻辑,生成的包含html/css/js的web页面是外观。
二、目录结构
我们先看一下WordPress的目录结构:
├─wp-admin //配置管理页面目录
│ ├─images //配置管理页面用到的图片目录
│ └─import //从其他不同站点导入博客文章的处理代码目录
├─wp-content //主题和插件目录
│ ├─plugins //各个插件目录
│ │ └─akismet</