========================================================================

地图:index.php->wp-blog-header.php->wp-load.php->wp-config.php

 

index.php:


描述:前端入口,基本没有内容。


1)定义WP_USE_THEMES常量,当该常量定义为false时,站点会显示为空白;为true时则正常显示。


2)加载wp-blog-header.php文件。

 

wp-blog-header.php:


描述:用于加载WP环境和模板。


1)设置$wp_did_header变量,相当于一个flag,确保wp-blog-header.php文件只在第一次被加载时执行。


2)加载wp-load.php文件。


3)调用wp()函数。


4)加载wp-includes/template-loader.php文件


 

wp-load.php:


描述:启动引导(Bootstrap)文件,用于设置ABSPATH常量和加载wp-config.php文件。wp-config.php将会加载wp-settings.php文件,它将用于建立WP的环境。


如果找不到wp-config.php文件,则会提示错误信息,要求用户设置wp-config.php文件。


wp-load.php还会自动搜索WP的上级文件夹寻找wp-config.php文件,因此可以保护WP文件夹不被暴露。


1)设置ABSPATH常量为到WP文件夹的路径。


2)设置错误报告模式。


3)加载wp-config.php文件(a.直接加载、b.从上级文件夹加载、c.找不到则报错,使用wp_die()函数)。


 

wp-config.php:


描述:WordPress基础配置文件。本文件包含以下配置选项: MySQL设置, 数据库表名前缀,密匙, WordPress语言设定以及ABSPATH. 如需更多信息,请访问http://codex.wordpress.org/Editing_wp-config.php. MySQL设置具体信息请咨询您的空间提供商。这个文件用在于安装程序自动生成 wp-config.php 配置文件,你可以手动复制这个文件,并重命名为 wp-config.php,然后输入相关信息。


1)设置数据库名、用户名、密码、数据库主机、数据库编码、数据库整理类型、数据库表前缀。


2)设置身份密匙,用于进行cookie加密。


3)设置WP语言。


4)设置WordPress目录的绝对路径ABSPATH。


5)加载wp-settings.php文件。






========================================================================


地图:index.php->……->wp-config.php->wp-setting.php



描述:用于设置公共变量、加载 WP 的程序和类库(存储 WP 函数、类和核心内容所在文件夹的位置)。用户无需修改此文件,但是可以通过修改 wp-config.php 文件来进行配置。



1)定义 WPINC 常量,并引入初始化所需文件 WPINC/load.php,WPINC/default-constants.php,WPINC/version.php。



2)调用 wp_initial_constants() 函数,初始化常量 WP_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR 和 WP_CACHE。



3)关闭运行期的魔术引用,魔术引用稍后将在 wp-settings.php 中通过 wpdb 添加。



4)设置 PHP5 的默认时区。



5)调用 wp_unregister_GLOBALS() 函数关闭 register_globals。



6)unset 全局变量 $wp_filter, $cache_lastcommentmodified, $cache_lastpostdate,以确保他们不会存在。



7)规范 $_SERVER 变量设置。



8)检查所需的 PHP 版本和 MySQL 扩展或数据库 drop-in。



9)检查是否收到由于缺少 favicon.ico 的而产生请求。



10)检查是否处于维护模式。



11)开启加载计时器。



12)检查是否处于 WP_DEBUG 模式。



13)根据 WP_CACHE 和 WP_DEBUG 常量判断是否载入以及以何种方式载入 WP_CONTENT_DIR/advanced-cache.php 文件。



14)调用 wp_set_lang_dir() 函数设置常量 WP_LANG_DIR。



15)加载WP文件 WPINC/compat.php,WPINC/functions.php,WPINC/classes.php。



16)调用 require_wp_db() 函数,引入 wpdb 类,或者数据库 drop-in db.php (如果存在的话)。



17)调用 wp_set_wpdb_vars() 函数,设置数据库表前缀和数据库表列的格式说明符



18)调用 wp_start_object_cache() 函数,开启WP对象缓存,或者扩展对象缓存(如果相应 drop-in 存在的话)。



19)加载WP文件 WPINC/plugin.php,WPINC/default-filters.php,WPINC/pomo/mo.php。



20)如果开启了多站点,则加载文件 WPINC/ms-blogs.php,WPINC/ms-settings.php;否则设置常量 MULTISITE 为 false。



————如果只需要基本功能(即 SHORTINIT 常量为真),则 wp-setting.php 文件执行到此即返回!————



21)加载 l18n 库 WPINC/l10n.php。



22)调用 wp_not_installed() 函数,如果还没有安装 WP,则启动安装程序。



23)加载 WP 的*大头(most of WP)*:



WPINC/formatting.php,

WPINC/capabilities.php,

WPINC/query.php,

WPINC/theme.php,

WPINC/user.php,

WPINC/meta.php,

WPINC/general-template.php,

WPINC/link-template.php,

WPINC/author-template.php,

WPINC/post.php,

WPINC/post-template.php,

WPINC/category.php,

WPINC/category-template.php,

WPINC/comment.php,

WPINC/comment-template.php,

WPINC/rewrite.php,

WPINC/feed.php,

WPINC/bookmark.php,

WPINC/bookmark-template.php,

WPINC/kses.php,

WPINC/cron.php,

WPIN/deprecated.php,

WPINC/script-loader.php,

WPINC/taxonomy.php,

WPINC/update.php,

WPINC/canonical.php,

WPINC/shortcodes.php,

WPINC/media.php,

WPINC/http.php,

WPINC/class-http.php,

WPINC/widgets.php,

WPINC/nav-menu.php,

WPINC/nav-menu-template.php



24)加载多站点特定文件,WPINC/ms-functions.php,WPINC/ms-default-filters.php,WPINC/ms-deprecated.php。



25)调用 wp_plugin_directory_constants() 函数,定义依赖于API获取默认值的常量,定义必须使用的插件文件夹常量,后者可能会在 sunrise.php drop-in 中被覆盖。



26)利用函数 wp_get_mu_plugins() 加载必须使用的插件,并触发挂载点 do_action( ‘muplugins_loaded’ );



27)调用函数 ms_cookie_constants() 为多站点设置 cookie 常量。



28)调用函数 wp_cookie_constants() 在多站点加载后定义常量,cookie 相关的常量可能会在 ms_network_cookies() 中被覆盖。



29)调用函数 wp_ssl_constants() 定义和执行 SSL 常量。



30)加载文件 WPINC/vars.php 创建公共全局变量。



31)调用函数 create_initial_taxonomies() 和 create_initial_post_types() 使分类和文章对插件和主题可见。插件作者需要注意:这些在初始化 hook 时会被再次注册。



32)利用函数 wp_get_active_and_valid_plugins() 加载已激活的插件。



33)加载 pluggable 的函数,WPINC/pluggable.php,WPINC/pluggable-deprecated.php。



34)调用函数 wp_set_internal_encoding() 设置内部编码。



35)如果 WP_CACHE 开启并且 wp_cache_postload() 函数存在,则调用该函数。



36)触发挂载点 do_action( ‘plugins_loaded’ )。



37)调用函数 wp_functionality_constants() 定义那些尚未被定义但会影响功能的常量。



38)调用函数 wp_magic_quotes() 添加魔术引用并装配 $_REQUEST ( $_GET + $_POST )。



39)触发挂载点 do_action( ‘sanitize_comment_cookies’ )(无害的评论 cookie)。



40)创建全局的WP查询对象 $wp_the_query =& new WP_Query(),并保存 $wp_the_query 的引用到 $wp_query,使用 $wp_query 进行查询。



41)创建 WP 的重写对象 $wp_rewrite =& new WP_Rewrite(),以创建漂亮的 URLs。



42)创建WP对象 $wp =& new WP()。



43)创建 WP Widget 工厂对象 $wp_widget_factory =& new WP_Widget_Factory()。



44)触发挂载点 do_action( ‘setup_theme’ )。



45)调用函数 wp_templating_constants() 设置模板相关常量。



46)调用函数 load_default_textdomain() 加载默认的文本本地化域。



47)找到博客区域设置 $locale = get_locale()。



48)加载完文本域后,载入本地化数据 WPINC/locale.php。



49)创建本地化对象 $wp_locale =& new WP_Locale() 用以加载本地化域数据和各种字符串。



50)加载激活的主题的函数库  TEMPLATEPATH/functions.php。



51)触发挂载点 do_action( ‘after_setup_theme’ )。



52)调用函数 require_if_theme_supports() 加载主题支持的所有函数。



53)注册关闭函数 register_shutdown_function( ‘shutdown_action_hook’ )。



54)建立当前用户 $wp->init()。



55)触发挂载点 do_action( ‘init’ ),在这个阶段WP 的大部分已被加载,用户也已认证。WP 会继续加载 init 钩子上的挂载者,如widgets和各种插件实例。如果你想在WP加载后插入一个action,请使用下面的 wp_loaded 钩子。



56)如果是多站点,则检查站点的状态。



57)触发挂载点 do_action(‘wp_loaded’),当WP、所有插件以及主题都被完全加载和实例化后,该钩子将被解除。Ajax请求应该使用  wp-admin/admin-ajax.php,admin-ajax.php 能够处理未登录用户的请求。












========================================================================






地图:index.php->……->wp-setting.php->wp-includes/load.php

|_wp-includes/default-constants.php

|_wp-includes/version.php

wp-includes/load.php:


描述:定义加载 WP 所需要的函数。

1)wp_unregister_GLOBALS(),关闭’GLOBALS’, ‘_GET’, ‘_POST’, ‘_COOKIE’, ‘_REQUEST’, ‘_SERVER’, ‘_ENV’, ‘_FILES’, ‘table_prefix’以外的全局注册变量。

2)wp_fix_server_vars(),为各种安装方式准备 $_SERVER 变量(例如在 IIS、Apache 等不同环境下)。

3)wp_check_php_mysql_versions(),检查 PHP 版本、MYSQL扩展和数据库drop-in.

4)wp_maintenance(),检查 WP 是否处于维护模式当中(比如升级过程中),如果满足条件,则终止程序并产生一条维护信息。

5)timer_start(),PHP4 中标准的系统时间捕获方式。

6)timer_stop( $display = 0, $precision = 3 ),返回时间,并且当 $display = 1 时输出时间。

7)wp_debug_mode(),设置PHP的错误处理方式和 WP 的调试模式。

8)wp_set_lang_dir(),设置常量 WP_LANG_DIR,即语言文件所在的文件夹。

9)wp_set_wpdb_vars(),设置数据库表前缀和数据库表列的格式说明符。

10)wp_start_object_cache(),开启对象缓存。如果wp-content文件夹中存在object-cache.php文件,则使用他作为扩展的对象缓存。

11)wp_not_installed(),如果还没有安装 WP,则启动安装程序。

12)wp_get_mu_plugins(),返回 must-use 插件的文件数组,默认的 must-use 插件在 wp-content/mu-plugins 目录,如果要修改默认目录,可配置 wp-config.php 文件中的 WPMU_PLUGIN_DIR 和 WPMU_PLUGIN_URL 常量。

13)wp_get_active_and_valid_plugins(),返回激活的合法的插件文件数组,默认的插件在 wp-content/plugins 目录,如果要修改默认目录,可配置 wp-config.php 文件中的 WP_PLUGIN_DIR 和 WP_PLUGIN_URL 常量。

14)wp_set_internal_encoding(),利用 mb_internal_encoding() 函数设置内部编码方式,默认设置为UTF-8.

15)wp_magic_quotes(),对 $_GET, $_POST, $_COOKIE, and $_SERVER 添加魔术引用。

16)shutdown_action_hook(),触发挂载点 do_action( ‘shutdown’ ),在PHP关闭执行之前运行。

17)wp_clone( $object ),克隆对象。只有在 PHP5 以上的版本中才能克隆成功,否则返回原来的对象。

18)is_admin(),返回当前请求是否在 WP 的管理面板中。



19)is_multisite(),返回是否支持多站点。

 

 

wp-includes/default-constants.php:

 



描述:定义能够被重写的常量和全局变量,他们通常可以在 wp-config.php 中重新配置。



1)wp_initial_constants( ),定义 WP 初始化常量 WP_MEMORY_LIMIT,WP_CONTENT_DIR,WP_DEBUG,WP_DEBUG_DISPLAY,WP_DEBUG_LOG,WP_CACHE,MEDIA_TRASH,SHORTINIT 和全局变量 $blog_id(用于设置多博客)。



2)wp_plugin_directory_constants( ),定义 WP 插件文件夹的常量 WP_CONTENT_URL,WP_PLUGIN_DIR,WP_PLUGIN_URL,WPMU_PLUGIN_DIR,WPMU_PLUGIN_URL。



3)wp_cookie_constants( ),定义 WP 与cookie相关的常量 COOKIEHASH,USER_COOKIE,PASS_COOKIE,AUTH_COOKIE,SECURE_AUTH_COOKIE,LOGGED_IN_COOKIE,TEST_COOKIE,COOKIEPATH,SITECOOKIEPATH,ADMIN_COOKIE_PATH,PLUGINS_COOKIE_PATH,COOKIE_DOMAIN。



4)wp_ssl_constants( ),定义 WP 与 ssl 相关的常量 FORCE_SSL_ADMIN,FORCE_SSL_LOGIN。



5)wp_functionality_constants( ),定义 WP 与功能相关的常量 AUTOSAVE_INTERVAL,EMPTY_TRASH_DAYS,WP_POST_REVISIONS。



6)wp_templating_constants( ),定义 WP 与模板相关的常量 TEMPLATEPATH,STYLESHEETPATH,WP_DEFAULT_THEME。



 

 

 

wp-includes/version.php:

 

描述:定义版本相关变量,包括 $wp_version,$wp_db_version,$tinymce_version,manifest_version,$required_php_version,$required_mysql_version