个性化阅读
专注于IT技术分析

覆盖WordPress核心函数require_wp_db()

我在当前网站上集成了wordpress。但是我收到一个错误消息, 说我的DB_HOST, DB_NAME, DB_USER已经定义。没错, 因为我正在运行使用相同常量的登录/成员脚本。

因此, 我将wp-config.php中的wordpress常量重命名为DB_HOST1, DB_NAME1等。为了使wordpress使用新的常量运行, 我需要将wp-includes / load.php函数require_wp_db()更改为:

function require_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 = new wpdb( DB_USER1, DB_PASSWORD1, DB_NAME1, DB_HOST1 );
}

但是当wordpress更新安装时, 我担心它会被覆盖, 因为它是一个wordpress核心文件。

我试图钩住或过滤函数, 但是钩子在数据库连接后执行。

有什么建议如何解决这个问题?

非常感谢你


#1


修改核心文件从来都不是一件好事。但是如果必须的话, 一个丑陋的解决方法是使用来自Linux shell的chattr命令使文件不可变:

 chattr +i wp-includes/load.php 

这将防止文件在以后的更新中被更新。

赞(0)
未经允许不得转载:srcmini » 覆盖WordPress核心函数require_wp_db()

评论 抢沙发

评论前必须登录!