`
beefcow
  • 浏览: 44512 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

wordpress对请求的处理 简单架构

阅读更多

 Wordpress code flow 介绍了WordPress对请求的处理流程,虽然针对的是wp 1.5版本,相当老了(当前已到3.0.1),但对比最新代码,会发现思路大同小异,细节微有区别而已.

 

整理了最新版本(3.0.1)的处理方式,供参考:

 

 

从index.php开始,每个请求都会流经此处,而它也相当简洁,只是一行代码而已:

 

require('./wp-blog-header.php');

  

 

引用了header.php.这个文件也相当简洁,关键的就三行代码:

 

 

	require_once( dirname(__FILE__) . '/wp-load.php' );

	wp();

	require_once( ABSPATH . WPINC . '/template-loader.php' );

 

 

 

引用了两个文件,中间调用了一个函数,可能会些许惊讶,但确实这就是请求处理的全部鸟.

 

 

 

对wp-load.php的作用可以顾名思义:加载文件.具体是载入config.php(如果有的话),主要是数据库方面的配置.(To be Edit 还有对wp-setting.php 的引入)

 

wp()的调用相当重要,它负责了对请求参数的处理,例如这样一个地址:

 

http://localhost/wordpress/?p=1

 

 

它会解析出来请求的参数p=1

 

而具体的意义,由最后require进来的template-loader.php负责解释,它使用了一连串的if-else判断到底这个请求是哪一类型的,是请求主页,还是根据类别返回文章?  具体的,针对上一个地址http://localhost/wordpress/?p=1,会解释成对单篇文章的请求:is_single(),并返回

 

$template = [根目录地址]/wp-content/themes/chocotheme/single.php

 

 

这是当前选用的模板对单片文章的输出模板,这个文件名不是template-loader么,于是调用

 

include( $template );

 

 

load 这个template , 输出内容,请求解析完毕 ^_^

 

 

整个过程还是相当清晰明快的,当然了这样的叙述相当的High Level了,忽略了很多细节,如 加载不同主题,貌似蛮有名气的The Big Loop等等,就需要细细品位了.

 

整个过程比较有启发的就是对query params 的处理,先拿进来,再判断究竟该分到哪个模板,之后分发出去,有点分发器的意思,清晰明了.

 

 

分享到:
评论

相关推荐

    图解WordPress模板架构

    WordPress会根据当前请求的URL和页面类型,尝试找到最符合的模板文件来渲染页面。例如,如果访问的是一个单篇文章,它会优先查找single.php;如果找不到,就回退到archive.php,再找不到就使用index.php。 三、模板...

    wordpress系统源代码简约版

    1. **核心框架**:WordPress的核心框架包含了处理用户请求、渲染页面、处理插件和主题的逻辑。这些源代码涉及的主要文件有`wp-load.php`,它是启动WordPress环境的入口点;`wp-settings.php`用于设置基本配置;以及`...

    wordpress 代码分析整理

    理解这些图表可以帮助开发者更好地理解WordPress的请求处理过程,例如如何从URL解析到对应的页面,以及数据库查询如何执行。 7. **其他资源** 文件列表中还有其他文件,如`1.htm`和`【转载】Wordpress源代码分析之...

    wordpress

    在 WordPress 中,PHP 负责处理用户请求,解析模板,执行数据库查询,并生成最终的 HTML 输出给浏览器。 WordPress 的安装过程相对简单,只需要一个支持 PHP 和 MySQL 的 web 服务器环境。一旦安装完成,用户可以...

    wordpress for android源码

    一、WordPress for Android基础架构 WordPress for Android源码基于Android 4.0(Ice Cream Sandwich)进行开发,这表明项目在设计之初就考虑到了兼容性和性能优化。源码主要分为以下几个关键模块: 1. 数据访问层...

    WordPress-Android-develop

    总结来说,通过研究WordPress-Android-develop项目,开发者可以学习到Android应用的基本架构,如何利用WordPress REST API,使用网络请求库进行数据交互,本地数据存储的方法,UI设计技巧,以及安全性和权限管理的...

    wordpress的Android源码

    查看源码,我们可以学习如何使用Android的权限请求系统,确保应用在需要时正确地请求和处理用户权限。 7. **测试与持续集成** 开源项目通常有完善的测试框架和持续集成流程。研究测试代码,可以了解JUnit、...

    LNMP+Wordpress软件包

    Nginx以其高性能和低内存占用而闻名,它是LNMP架构中的关键组件,负责处理HTTP请求和反向代理。安装Nginx可以通过以下命令(以Ubuntu为例): ```bash sudo apt-get install nginx ``` 配置完成后,可以使用`sudo ...

    Laravel开发-laravel-wordpress

    本项目“Laravel开发-laravel-wordpress”旨在整合WordPress与Laravel,实现WordPress内容在Laravel环境中的本地缓存,从而提高数据处理效率和用户体验。 Laravel的核心特性包括路由、中间件、控制器、模型-视图-...

    wordpress微信api接口程序

    通过RESTful(Representational State Transfer)架构,这个API使得远程访问和操作WordPress站点变得更加简单,包括发布文章、管理评论、获取用户信息等。 3. **WordPress微信小程序插件**:为了实现WordPress与...

    wordpress源码包

    2. **插件架构**:WordPress 提供了一个强大的插件系统,用户可以通过安装各种插件来扩展其功能,如SEO优化、社交媒体集成、表单创建等。 3. **数据库交互**:WordPress 使用MySQL作为数据库,存储网站内容、用户...

    基于PHP的博客WordPress正式版源码.zip

    7. **SEO友好**:WordPress内置了对搜索引擎优化(SEO)的支持,通过Yoast SEO等插件,可以进一步提高网站的搜索引擎排名。 8. **多语言支持**:WordPress支持多种语言,通过WPML插件,可以轻松创建多语言网站。 9...

    lamp_wordpress_4.7.3.zip

    PHP是用于处理动态网页内容的服务器端脚本语言,与WordPress紧密集成。 3. `httpd-2.4.37.tar.gz`:这是Apache HTTP Server的源代码包,版本为2.4.37。Apache是世界上最流行的Web服务器软件,用于接收HTTP请求并返回...

    WordPress for Android安卓源码.7z

    WordPress for Android支持多语言环境,源码中可以看到对`strings.xml`资源文件的使用,以及`Locale`对象的处理,实现了根据用户设备设置动态切换语言的功能。 八、持续集成与自动化测试 项目配置了持续集成服务,...

    百度云bae wordpress sitemap 添加方法

    【标题】:“百度云BAE WordPress Sitemap 添加方法”涉及的主要知识点是将WordPress网站与百度云基础架构即服务(BAE)平台集成,并且添加站点地图(Sitemap)功能,以便于搜索引擎优化(SEO)。 首先,让我们了解...

    wordpress 安卓源码

    理解这个客户端的实现,有助于学习如何构建网络请求和处理 JSON 数据。 3. **AuthenticatorService**: 负责用户的登录验证,使用 OAuth2 协议,确保数据安全传输。理解这一部分可以帮助你掌握 Android 中的安全认证...

    wordpress客户端源码.zip

    5. **RESTful API通信**:客户端与WordPress服务器的通信基于RESTful API,使用Retrofit库进行网络请求,OkHttp作为网络底层实现,Gson处理JSON数据序列化和反序列化。 三、功能实现分析 1. **用户认证**:通过...

    WordPress小程序对接代码完整版本

    这些接口通常基于RESTful架构,使得小程序能够通过HTTP请求获取或更新WordPress中的数据,如文章、分类、用户信息等。 2. **OAuth身份验证**:为了安全地访问WordPress数据,对接代码可能涉及到OAuth身份验证流程。...

Global site tag (gtag.js) - Google Analytics