1

我安装了 ZendFW 应用程序和 WPMU。Zend 应用程序的管理员有一个界面,他们可以在其中创建新的 MU 站点。

我包括wp-load.php然后打电话wpmu_create_blog等等......

将 WP 更新到 3.9 后,建立数据库连接时出现错误。

此测试代码适用于 3.8,但在尝试 WP 3.9 时会出现 db 错误。

blog38是 WP 3.8

<?php 

include "../blog38/wp-load.php";

global $wpdb;
echo "<pre>";
var_dump($wpdb->tables());
?>

blog39是 WP 3.9

<?php 

include "../blog39/wp-load.php";

global $wpdb;
echo "<pre>";
var_dump($wpdb->tables());
?>

有谁知道问题是什么?如何解决此连接错误?

4

1 回答 1

0

我将它发布在 WordPress 讨论中并提交了一张票。问题出在 ms-setting.php 文件中,他们以新的方式设置 $path 和 $current_site->path 变量。在 WP 3.8.3 中,他们有 $current_site->path = $path = PATH_CURRENT_SITE;

在 WP 3.9 中,他们设置

$current_site->path = PATH_CURRENT_SITE;

$path 由 $_SERVER['REQUEST_URI'] 变量决定。因此,当您在应用程序中加载 wp-load.php 文件(并且 wordpress 在子目录中)时,您的 $path 和 $current_site->path 变量不同,最终在没有博客定义的情况下出现,这会导致数据库连接错误。

当前的解决方法是$_SERVER['REQUEST_URI'] = '/blog/';在加载之前覆盖wp-load.php

可以找到更多信息:

http://wordpress.org/support/topic/wordpress-39-multisite-db-connection-error https://core.trac.wordpress.org/ticket/27999

于 2014-04-24T10:44:25.313 回答