覆盖Wordpress核心函数require_wp_db()

时间:2018-02-28 08:45:17

标签: php wordpress wordpress-theming custom-wordpress-pages

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

所以我将wp-config.php中的wordpress常量重命名为DB_HOST1,DB_NAME1等。 要使wordpress与新的Constant一起运行,我需要将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 个答案:

答案 0 :(得分:0)

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

 chattr +i wp-includes/load.php 

这将阻止在将来的更新中更新文件。