Copie o corpo de wp-includes/ms-settings.php
para sunrise.php
, da linha 25 para a linha 127. Na parte inferior, adicione seu BLOGUPLOADDIR
define.
// from ms-settings.php
ms_subdomain_constants();
if ( !isset( $current_site ) || !isset( $current_blog ) ) {
// [trimmed, but you need the whole if block]
}
// end of ms-settings.php copy
if ( $current_blog->blog_id < 10 ) {
$bloggroup = 'global';
} else {
$bloggroup = 'bloggroup' . floor( $current_blog->blog_id / 2000 + 1 ); // 1999->1, 2000->2
}
// from ms-default-constants.php: ms_upload_constants()
define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );
define( 'UPLOADS', UPLOADBLOGSDIR . "/{$bloggroup}/{$current_blog->blog_id}/files/" );
define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$bloggroup}/{$current_blog->blog_id}/files/" );
ms-settings.php
carregará sunrise.php
. Quando a execução retornar a ms-settings.php
, ele verá que $current_site
e $current_blog
estão configurados e ignorará essa declaração if enorme. Lembre-se de atualizar seu sunrise.php ao atualizar o WordPress.
A solução hacky extrema que não requer copypasta envolveria uma das substituições wp_start_object_cache()
(a única funcionalidade enganchada entre descobrir $current_blog
e chamar ms_upload_constants()
), mas não vamos lá.