WordPress核心文件之wp-blog-header.php

/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */

上面这段内容是wp-blog-header.php文件的注释,大概意思是加载WordPress环境和模板。
他的代码很简单,首先使用变量 $wp_did_header 用来防止该文件被多次加载。接下来的代码分成三部分(
我把下面代码的注释都做了一下简单的翻译,方便大家的理解):

if ( !isset($wp_did_header) ) {

	$wp_did_header = true;

	 // 引入wp-load.php文件,加载 WordPress环境(核心文件,类库之类的)
	require_once( dirname(__FILE__) . '/wp-load.php' );

	// 创建 WordPress 查询
	wp();

    // 引入template-loader.php文件,加载模板
	require_once( ABSPATH . WPINC . '/template-loader.php' );
}

再简单拓展一下这三部分:

  1. 加载当前目录下的 wp-load.php 文件来加载 WordPress 的核心文件。它会把 wp-config.phpwp-setting.phpclasses.phpfucntions.php, query.php 等文件加载进来,并建立了三个全局变量,$wp_the_query$wp_rewrite 和 $wp,分别为 WP_Query、 WP_Rewrite 和 WP 类的实例。
  2. 调用 wp() 函数,这个函数会调用 $wp 所属 WP 类的 main 方法, 这个方法又调用一系列方法,但最重要的是 parse_request 方法,WP 从这里开始解析 URL 并建立主循环。
  3. 加载 wp-include 目录下的 template-loder.php 文件,就是去加载 WordPress 模板了。