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基础架构实施性能,安全性和基础架构最佳实践具有自动化,可审核和幂等的配置总览Mikado提供了一种完全自动化的方式来...
我们还使用了队列系统来处理并发请求和长时间运行的任务,以保证系统的并发能力和稳定性。此外,我们还采用了安全性的最佳实践,如输入验证、安全过滤和加密存储等,以保护用户数据的安全性。 我们的项目源码具有...
WordPress REST API通过其架构提供了很多自己的文档。 这个插件包含一个React应用程序,该应用程序使用架构数据来生成快速的文档站点。 添加和编辑高级文档页面 自动发现和显示所有自定义端点 直接从文档中提出API...
高并发网站架构的核心原则其实就一句话“把所有的用户访问请求都尽量往前推“,即:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访问静态服务器的...
我们还使用了队列系统来处理并发请求和长时间运行的任务,以保证系统的并发能力和稳定性。此外,我们还采用了安全性的最佳实践,如输入验证、安全过滤和加密存储等,以保护用户数据的安全性。 我们的项目源码具有...
使用完整的JSON架构验证器验证WP REST API请求。 WordPress附带有一个验证器rest_validate_request_arg() ,该验证器支持JSON Schema规范的有限子集。 当编写具有最低配置的端点模式时,该库允许使用完整的JSON模式...
程序实例使用的是读者朋友们比较关注的三层架构所编写,应用的开发环境是VS2008自带的AJAX无刷新环境,并且对于网站安全通过无解密MD5单向加密技术来实现。 读者朋友们在运行本实例时可以先以超级管理员的身份...
带有JavaScript的WordPress REST API-简介扎克·戈登(Zac Gordon)关于乌迪米(Udemy)的课程课程大纲介绍HTTP和HTTP请求WordPress内部的HTTP请求WordPress外部的HTTP请求WordPress REST API-路由,架构和端点核心...
开发真的很耗时,所以我想分享当前状态并邀请您做一些拉取请求。 如果有一些有用的反馈也很棒! 描述 muneco 支持您使用网络管理多语言 WordPress 实例。 为此,muneco 扩展了您的 WP-Network,而无需操纵系统的...
生成更少的页面请求 80多个可导入的演示 13+随时可以使用Pro设计的演示 使用现代编码语言设计 轻巧简洁的设计 还包括八个高级插件 810+准备使用的元素和帖子模板 独特的目标网页设计 灵活的接头 移动标题支持 无数的...
等主要 web 属性使用 LAMP 架构来为每天数百万的请求提供服务,而 WordPress、Joomla、Drupal 和 SugarCRM 等 web 应用程序软件使用其架构来让组织轻松部署基于 web 的应用程序。 该架构的优势在于其简单性。而 ...
在SPA之前的时代,我们传统的Web架构大都是SSR,如:WordPress(PHP)、JSP技术、JavaWeb等这些程序都是传统典型的SSR架构,即:服务端取出数据和模板组合生成 html输出给前端,前端发生请求时,重新向服务端请求...
这个插件是项目的一部分,该项目将WP的职责限制在管理内容的同时,还要委托Rails应用程序服务于公共请求并为自定义提供基础。 顾名思义, wp-relinquish relinquish插件可帮助 “放弃”提供给外部系统的内容。 ...
跟传统的服务器不同,Nginx不依赖线程来处理请求。相反,它使用了更多的可扩展的事件驱动(异步)架构。Nginx为一些高流量的网站提供动力,比如WordPress,人人网,腾讯,网易等。这篇文章主要是介绍如何提高运行在...
Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱 动(异步)架构。Nginx在很多高流量网站上得到了应用,如WordPress,Hulu,Github和...
Nginx用作反向代理,可将请求路由到托管Nuxt(Vue.js)应用程序的Node / Express服务器或WordPress网站。包含Express服务器和使用Nuxt创建的应用程序前端的节点应用程序。最后,WordPress容器可充当富内容编辑器和...