WordPress 系统初始化 load 文件解析

2018-07-04 0 By admin

WordPress 系统初始化过程中加载 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_favicon_request() 检查是否收到由于缺少 favicon.ico 的而产生请求
  4. wp_set_internal_encoding(),利用 mb_internal_encoding() 函数设置内部编码方式,默认设置为UTF-8.
  5. wp_maintenance(),检查 WP 是否处于维护模式当中(比如升级过程中),如果满足条件,则终止程序并产生一条维护信息。
  6. wp_debug_mode(),设置PHP的错误处理方式和 WP 的调试模式。
  7. wp_set_lang_dir(),设置常量 WP_LANG_DIR,即语言文件所在的文件夹。
  8. wp_start_object_cache(),开启对象缓存。如果wp-content文件夹中存在object-cache.php文件,则使用他作为扩展的对象缓存。
  9. wp_not_installed(),如果访问地址尚未安装WP,则启动安装程序,加载文件 wp-admin/install.php、wp-includes/pluggable.php 等。
  10. timer_start(),PHP4 中标准的系统时间捕获方式。
  11. timer_stop( $display = 0, $precision = 3 ),返回时间,并且当 $display = 1 时输出时间。

二、核心函数

  1. wp_get_mu_plugins(),返回 must-use 插件的文件数组,默认的 must-use 插件在 wp-content/mu-plugins 目录,如果要修改默认目录,可配置 wp-config.php 文件中的 WPMU_PLUGIN_DIR 和 WPMU_PLUGIN_URL 常量。
  2. wp_get_active_and_valid_plugins(),返回激活的合法的插件文件数组,默认的插件在 wp-content/plugins 目录,如果要修改默认目录,可配置 wp-config.php 文件中的 WP_PLUGIN_DIR 和 WP_PLUGIN_URL 常量。
  3. wp_magic_quotes(),对 $_GET, $_POST, $_COOKIE, and $_SERVER 添加魔术引用。
  4. shutdown_action_hook(),触发挂载点 do_action( ‘shutdown’ ),在PHP关闭执行之前运行。
  5. wp_clone( $object ),克隆对象。只有在 PHP5 以上的版本中才能克隆成功,否则返回原来的对象。
  6. is_admin(),判断当前请求页面是否是后台页面,可以控制后台面板页面仅允许管理员访问。
  7. is_blog_admin() 判断当前请求是否可以访问后台URL中含/wp-admin/的页面
  8. is_multisite(),返回是否支持多站点。
  9. wp_load_translations_early() 初始化过程中的错误提示信息,且可翻译成对应语言

三、数据库设置相关函数

3.1、wp_check_php_mysql_versions() 版本

检查 PHP 版本、MYSQL扩展和数据库drop-in.

3.2、wp_set_wpdb_vars() 前缀和格式

设定数据表前缀和数据库表列的格式说明符,设定表前缀使用的是全局对象$wpdb的set_prefix()函数,该对象由wpdb类实例化生成,对于格式说明符主要是数值型列使用%d字符型列使用%s等,便于使用格式化输出函数。

3.3、require_wp_db() 构建 $wpdb 变量

加载数据库类文件 wp-db.php 并定义全局变量 $wpdb,内容为 wpdb 类的构造函数;wp-db.php 仅定义 了一个名为 wpdb 的类,该类内定义多个函数,如设定数据表前缀、连接数据库、选择数据库、创建数据库 SQL 语句模板(如 select、insert、 update 等数据库操作语句模板)等,可以说 WP 执行的所有数据操作所用 SQL 语句都是由该类实现的。