平常折腾 WordPress 可能需要了解一下 WordPress 程序的执行顺序,今天抽了些时间简单看了下 WordPress 的程序文件并且从网上搜了些相关文章简单了解了下,以下是个人根据自己所学整理的一些内容,希望对想要了解 WordPress 原理的同学有所帮助。

index.php

首先,当我们去访问一个网站的时候,程序会自动检索网站根目录下的 index.html、index.php 之类的文件,当然对于此类文件我们可以通过主机或者服务器后台进行设置。同样的,当我们访问 WordPress 程序时,首先我们需要找到 index.php 这个文件,这个文件比较简单,主要有以下两行代码,用来加载主题及 wp-blog-header.php 文件。

/**
 * Tells WordPress to load the WordPress theme and output it.
 * @var bool
 */
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

wp-blog-header.php

wp-blog-header.php 主要用来初始化 WordPress 运行环境并加载一些必要的模板文件。代码也比较简单,主要有以下内容:

if ( !isset($wp_did_header) ) {
$wp_did_header = true;
// Load the WordPress library.
 require_once( dirname(__FILE__) . '/wp-load.php' );
// Set up the WordPress query.
 wp();
// Load the theme template.
 require_once( ABSPATH . WPINC . '/template-loader.php' );
}

通过该文件 require一次 wp-load.php 与 template-loader.php 两个文件来分别进行环境及模板的加载并运行 wp() 函数。

wp-load.php

wp-load.php 主要用来判断WordPress 程序根目录中是否包含 wp-config.php 文件。如果有则加载;如果没有则检查是否用户将该文件移到其他文件夹下,并且如果在其他文件夹下发现 WordPress 配置文件后还有检查该文件夹下是否有 wp-settings.php 文件以避免同一个服务器安装多个网站时调用的是其他 WordPress 程序的配置文件;最后如果还是找不到 wp-config.php 文件,那么程序会运行 wp-admin 文件夹下的 setup-config.php文件以及 wp-includes 文件夹下的 load.php 、 functions.php 、 version.php 这几个文件引导用户重新生成一个 wp-config.php 文件,一般说来就像我们重新安装 WordPress 弹出的界面一样。该文件下代码比较多就不复制了,大家可自行看下。

wp-config.php

wp-config.php 主要用来连接网站数据库并将数据库中的一些必要信息返回,具体关于该文件的介绍大家可参考这篇文章>>> WordPress基础配置文件wp-config.php详解 。同时该文件还会调用 wp-settings.php 文件以读取用户对文件的设置并加载相关内容。

wp-setting.php

前面那些文件没有什么问题的话,WordPress 会自动加载该文件。该文件主要是一些 require 的语句,用来加载一些类库文件及函数文件等,为 WordPress 的运行做准备,这些文件一般都在 wp-include 文件夹下,大家可以简单浏览下该文件夹下的文件结构理解 WordPress 的运行原理。

template-loader.php

当运行到第二步 wp-blog-header.php 时,程序除了加载wp-load.php 文件还会加载 wp-include 文件夹下的 template-loader.php 文件,该文件主要用于根据用户URL返回加载相应模板,包括页面模板、文章模板、分类模板、首页模板等。另外该文件还会根据是否启用 trackback 来确定是否加载 wp-trackback.php 文件。

额,大概就这些,都是根据自己学习总结所得,如有错误欢迎指正。