WordPress 源码学习
[ ]The content is recoverd from Wordpress Blog, for more details please check HERE
August 29, 2014
开始学习研究开源代码 ,不过自己的PHP技术还很差 ,但是只要是有强大的搜索能力~ 以及一定的理解力 就可以呢{*≧∀≦}参考一下这个文章
那就从根目录的index.php开始解析代码~~
index.php
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP\_USE\_THEMES', true);
/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');
只有两句代码: 我们分别来看一下~~
define是PHP的定义常量的语法
define函数的用法 : define(NAME,VAL,CASE_SENSITIVE); 没有什么需要过多说明的地方 ,define函数就是定义一个常量 然后参数列表也很明确 ,注意的是 常量不需要加美元符号 ($)
require函数 : require(‘FILENAME’) 语句包含并运行指定文件。 如果文件不存在 ,报Fatal Error 也就是说 ,如果文件不存在 这个函数的报错会导致这个网页无法加载 ,这个特性在很多时候还会用到 与它功能差不多的还有一个 include函数 不同的是如果文件不存在,只会报一个WARNING。这两个看情况使用
当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
上面的代码既然调用了wp-blog-header.php那么我们下来就看这个代码~
wp-blog-header.php
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp\_did\_header) ) {
$wp\_did\_header = true;
require\_once( dirname(\_\_FILE\_\_) . '/wp-load.php' );
wp();
require\_once( ABSPATH . WPINC . '/template-loader.php' );
}
这个代码也不是很难理解 一行一行一个函数一个函数分析~
isset函数 isset函数可以检测这个变量是否被定义了 用法 isset(var1,var2,var3…);其中第一个必须填
require_once函数 require_once(‘FILENAME’);
require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
dirname()函数 函数用法 dirname(string $path)给出一个文件的路径 ,返回这个文件所在的目录的绝对路径 而__FILE__这个常量 ,是 预定义常量 也叫 魔术常量 详细介绍在这里 这里就理解为wp-blog-header这个文件的绝对路径就好~
dirname(__FILE__) 取到的是当前文件的绝对路径,也就是说,比起相对路径,查找速度是最快的。
上面的代码通过require_once函数把wp-load.php的代码包含进来了~ 我们一会儿再去看那个代码 下面先继续看 :
下一个部分是wp()函数 ,这是自定义的函数,而且这个函数多的定义不存在与当前的这个文件里(wp-blog-header.php),是定义在其它文件里的 ,下次继续~这次先到这里
PHP, Web Develop C. Linux, kernel, Laravel, PHP, Python, Shell, Web, wine
Historical Comments
Post navigation ————— NEXT
WordPress 源码学习 #01 PREVIOUS DP题目列表