wordpress全局变量$wpdb初始化并声明为全局变量的方法

wordpress全局变量$wpdb初始化并声明为全局变量的方法,第1张

wordpress全局变量$wpdb初始化并声明为全局变量的方法

Wordpress *** 作数据库查询使用一个全局变量$wpdb来执行各种 *** 作。应用时,先在函数中声明全局$wpdb,然后启用其数据库 *** 作模式。那么它在哪里被重置并声明为全局变量呢?

从wordpressprocessindex.php开始:


复制下面的代码:
define('WP_use_themes',true);

/**加载WordPress环境和模板*/
require(dirname(__FILE__)。/WP-blog-header.PHP');

Index.php把wp-blog-header.php的文件装了进去,然后打开来看一看:


复制下面的代码:
if(!isset($WP_did_header)){
$WP_did_header=true;
require_once(dirname(__FILE__)。/WP-load.PHP’);
WP();
require_once(ABSPATH。WPINC。/template-loader.PHP');
}

再次打开wp-load.php:


复制下面的代码:
if(file_exists(abspath。WP-config.PHP'){
/**配置文件残留在ABSpath*/
require_once(ABSpath

}elseif(file_exists(dirname(ABSpath))。/WP-config.PHP')&;&!file_exists(目录名(ABSPATH)。/WP-settings.PHP'){

/**配置文件驻留在ABSPATH的上一级,但不是另一个install*/
require_once(dirname(ABSPATH)的一部分。/WP-config.PHP’);

}else{
……
}

它加载环境变量config.php,并打开config.php看一看:


复制下面的代码:
/*OK!请不要再写了。请保存此文档。申请愉快!*/

/**WordPress文件目录的相对路径。*/
if(!defined('ABSPATH')
define('ABSPATH',dirname(__FILE__)。'/');

/**设置WordPress参数并包含文档。*/
require_once(ABSPATH。WP-settings.PHP’);

寻找底部的两行,它们被加载到wp-settings.php文件中。打开来看一看:


复制下面的代码:
define('WPInc','WP-includes');

//包含初始化所需的文件。
要求(ABSPATH。WPINC。/load.PHP’);
要求(ABSPATH。WPINC。/default-constants.PHP');
要求(ABSPATH。WPINC。/version.PHP’);

它加载了load.php文档,并打开了load.php文档,其中有一个涵洞:


复制下面的代码:
functionrequire_WP_db(){
global$wpdb;

require_once(ABSPATH。WPINC。/WP-db.PHP’);
if(file_exists(WP_CONTENT_DIR。/db.PHP')
require_once(WP_CONTENT_DIR。/db.PHP’);

if(isset($wpdb))
return;

$wpdb=newwpdb(DB_USER,DB_PASSWORD,DB_NAME,DB_HOST);
}

并且在这个文件(wp-settings.php)下启用了require_wp_db()方法:


复制以下代码:
//包括wpdb类和db.php数据库插件(如果存在的话)。
require_WP_db();

因此,在逐层加载文档并启用后,$wpdb的全局定义就是在这里进行的。

在这篇文章中,我将谈谈博客原创。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存