您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
wordpress源码运行方式逻辑解析
雅绿2025-02-19WordPress教程已有人查阅
导读记录下自己阅读wordpress的过程。打算先整体过一遍。我下载的wordpress版本是4.9.5。首先是入口文件index.php仅仅只是告诉要使用主题,然后加载wordpress环境和模板。
记录下自己阅读wordpress的过程。打算先整体过一遍。
我下载的wordpress版本是4.9.5。
首先是入口文件index.php仅仅只是告诉要使用主题,然后加载wordpress环境和模板。
进入wp-blog-header.php文件看看使用单例的方式执行if中的内容。主要包括3个部分。
一、加载wp-load.php //加载wordpress需要的库
二、wp(); //设置 wordpress 查询,这里是wordpress的主要执行部分。
三、加载template-loader.php // 主题模板
wp-load.php 是引导文件,设置绝对路径常量,加载wp-config.php文件,该文件主要设置数据库用户密码等数据。设置错误输出,等wordpress环境设置。这里还有一个防止嵌套安装的判断。
wp-config.php设置了数据库信息,debug模式,加载wp-settings.php。
wp-settings.php修复常见的变量和包含wordpress的程序和函数库
主要引入了wp-includes中的
load.php //wordpress自己的函数类库
default-constants.php //定义常量和全局变量
plugin.php //加载插件的一些API
加载version.php //主要是所需的db,php,wordpress版本支持信息
然后执行wp_initial_constants();顾名思义是要初始化了。设置wordpress的运行时内存。定义很多常量。
wp_check_php_mysql_versions(); //检查wordpress的mysql版本是否支持
禁用魔术引导,定义时区,关闭register_globals防止用户字段被注册成全局变量
wp_fix_server_vars(); //标准化$_SERVER变量
wp_favicon_request(); //检查请求,如果是请求favicon.ico的不用加载全部wordpress
这里header的作用不是很清楚,mark一下,明天找找相关的答案。
wp_maintenance(); //检查是否处于维护模式,可以提示更新版本
time_start(); //记录wordpress开始时间
wp_debug_mode(); //检查是否处于debug模式
定义不存在的函数
if (XXX) :
XXX;
endif;
主要是检查是否有因为php版本太早而缺失的函数,来补充实现。
后面是wordpress自己写的自动类加载函数。
add_filter和apply_filter的一些使用
$GLOBALS['wp_embed'] = new WP_Embed(); 用户插入视频
wp_plugin_directory_constants() 定义wp-content路径
定义cookie相关常量
定义并执行ssl常量
等环境配置。
wp();来看wp方法。
我下载的wordpress版本是4.9.5。
首先是入口文件index.php仅仅只是告诉要使用主题,然后加载wordpress环境和模板。
进入wp-blog-header.php文件看看使用单例的方式执行if中的内容。主要包括3个部分。
一、加载wp-load.php //加载wordpress需要的库
二、wp(); //设置 wordpress 查询,这里是wordpress的主要执行部分。
三、加载template-loader.php // 主题模板
wp-load.php 是引导文件,设置绝对路径常量,加载wp-config.php文件,该文件主要设置数据库用户密码等数据。设置错误输出,等wordpress环境设置。这里还有一个防止嵌套安装的判断。
wp-config.php设置了数据库信息,debug模式,加载wp-settings.php。
wp-settings.php修复常见的变量和包含wordpress的程序和函数库
主要引入了wp-includes中的
load.php //wordpress自己的函数类库
default-constants.php //定义常量和全局变量
plugin.php //加载插件的一些API
加载version.php //主要是所需的db,php,wordpress版本支持信息
然后执行wp_initial_constants();顾名思义是要初始化了。设置wordpress的运行时内存。定义很多常量。
wp_check_php_mysql_versions(); //检查wordpress的mysql版本是否支持
禁用魔术引导,定义时区,关闭register_globals防止用户字段被注册成全局变量
wp_fix_server_vars(); //标准化$_SERVER变量
wp_favicon_request(); //检查请求,如果是请求favicon.ico的不用加载全部wordpress
这里header的作用不是很清楚,mark一下,明天找找相关的答案。
wp_maintenance(); //检查是否处于维护模式,可以提示更新版本
time_start(); //记录wordpress开始时间
wp_debug_mode(); //检查是否处于debug模式
定义不存在的函数
if(!function_exists('_')) {
function _($string) {
return $string;
}
}
if语句的不同写法if (XXX) :
XXX;
endif;
主要是检查是否有因为php版本太早而缺失的函数,来补充实现。
后面是wordpress自己写的自动类加载函数。
require( ABSPATH . WPINC . '/compat.php' );
wordpress使用list 函数
require( ABSPATH . WPINC . '/class-wp-list-util.php' );
wordpress主要的函数库API
require( ABSPATH . WPINC . '/functions.php' );
require( ABSPATH . WPINC . '/class-wp-matchesmapregex.php' );
require( ABSPATH . WPINC . '/class-wp.php' );
require( ABSPATH . WPINC . '/class-wp-error.php' ); //错误类
require( ABSPATH . WPINC . '/pomo/mo.php' );
require_wp_db(); //开始加载数据库类
wp_start_object_cache(); //开始wp对象缓存
require( ABSPATH . WPINC . '/default-filters.php' ); //加载默认filter
多占点的配置add_filter和apply_filter的一些使用
register_shutdown_function( 'shutdown_action_hook' ); //程序结束前清理输出缓冲区
wp_not_installed() 如果没有安装则运行wp安装程序$GLOBALS['wp_embed'] = new WP_Embed(); 用户插入视频
wp_plugin_directory_constants() 定义wp-content路径
定义cookie相关常量
定义并执行ssl常量
等环境配置。
wp();来看wp方法。
public function main($query_args = '') {
$this->init(); //设置当前用户
$this->parse_request($query_args); //解析查询请求
$this->send_headers(); //设置http头
$this->query_posts(); //根据查询变量设置Loop
$this->handle_404(); //如果找不到,设置404
$this->register_globals(); //注册全局变量
/**
* Fires once the WordPress environment has been set up.
*
* @since 2.1.0
*
* @param WP $this Current WordPress environment instance (passed by reference).
*/
do_action_ref_array( 'wp', array( &$this ) ); //wordpress环境变量准备完成之后执行
}
后面就是加载模板
本文标签:
很赞哦! ()
相关教程
图文教程
WordPress怎么优化方法,从几个方面入手优化WordPress
不管 WordPress 博客还是其他 CMS 建的站点,优化的 头一步 是动静态分离,这也是你看到新浪,腾讯等门户,他们图片的域名和网站的域名不是同一个的原因。
将WordPress博客订阅到QQ邮箱的方法
具体实现方法及步骤:1、登录QQ邮箱,点击右下角“阅读空间”,进入阅读空间。2、进入阅读空间后,点击页面右上角“设置”,进入阅读空间设置界面。
WordPress上传文件类型限制怎么解决
文件类型不符合安全规则。试试别的文件。这种错误是由于WordPress中做了文件上传格式的限制,这种限制可以在WordPress中的wp-include/functions.php的get_allowed_mime_types
wordpress教程WP_Query()类使用方法介绍
在讲WP_Query之前我们要先区分一下两个名词:WP_Query是WordPress自带的的一个用于处理复杂请求的类(这里的请求的内容不仅包括文章,还可能是页面,用户,分类等其它信息)。$wp_que
相关源码
-
(PC+WAP)绿色硅胶橡胶玩具制品营销型网站源码下载为硅胶橡胶制品及玩具行业打造的营销型网站模板,采用PbootCMS内核开发,通过模块化设计实现产品参数、安全认证、应用场景等专业内容的可视化呈现,助力企业建立可信赖的线上展示平台。查看源码 -
响应式WordPress简约博客主题Alt_BlogAlt_Blog主题该模板为博客内容展示设计,采用简约现代的风格理念,打造清晰的内容呈现平台。响应式布局确保在不同设备上都能获得良好的浏览体验,帮助博主更好地展示和分享内容。查看源码 -
(PC+WAP)智能机器人人工智能物联网自动化设备源码下载本模板基于PbootCMS内核开发,为智能机器人及传感器科技企业精心设计。采用现代化设计风格,突出科技感与专业性,多方位展示企业技术实力与产品优势。查看源码 -
(自适应)科技产品设备技术作品pbootcms网站模板带下载和招聘基于PbootCMS内核开发的高端科技企业模板,采用响应式布局技术,适配各类移动终端设备。模板设计聚焦科技行业特性,通过模块化结构实现企业形象展示、技术成果发布与人才招募等核心需求查看源码 -
(自适应响应式)HTML5甲醛环境检测网站模板带在线留言和资料下载本模板为甲醛检测与环保科技企业开发,采用PbootCMS内核构建。首页集成空气质量数据可视化模块,服务流程采用时间轴展示设计,检测报告板块支持PDF在线预览功能查看源码 -
自适应恒温恒湿机空调机械设备营销型网站模板(自适应手机版)响应式营销型恒温恒湿机环境设备类网站pbootcms模板 蓝色营销型空调设备网站源码下载PbootCMS内核开发的网站模板,该模板适用于营查看源码
| 分享笔记 (共有 篇笔记) |

