1

I have a ZendFW application and WPMU installed. Admins at Zend app has an interface where they can create a new MU site.

I included wp-load.php and then called wpmu_create_blog and so on...

Once I updated the WP to 3.9 I got error establishing database connection.

This test code works OK with 3.8 but gives db error when tried WP 3.9.

blog38 is WP 3.8

<?php 

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

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

blog39 is WP 3.9

<?php 

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

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

Does anyone know what the problem is? How to solve this connection error?

Praveen Puglia
  • 5,577
  • 5
  • 34
  • 68
Ivan Bajalovic
  • 780
  • 1
  • 9
  • 20
  • Did you manage to solve this Ivan? Also what error did you get in 3.9? (add error to post) – ptimson Apr 23 '14 at 19:16
  • Did you notice this: http://wordpress.stackexchange.com/questions/141578/3-9-breaks-multisite – Leo Apr 23 '14 at 23:31

1 Answers1

0

I posted it on WordPress discussion and submitted a ticket as well. The problem is in ms-setting.php file with new way they set $path and $current_site->path variables. In WP 3.8.3 they had $current_site->path = $path = PATH_CURRENT_SITE;

and in WP 3.9 they set

$current_site->path = PATH_CURRENT_SITE;

and $path is determined by the $_SERVER['REQUEST_URI'] variable. So when you load wp-load.php file inside your application (and wordpress is in subdirectory) you have $path and $current_site->path variable different which ends up in no blog defined case, which gives Database connection error.

Current workaround is to override $_SERVER['REQUEST_URI'] = '/blog/'; before loading wp-load.php

More information can be found:

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

Ivan Bajalovic
  • 780
  • 1
  • 9
  • 20