it-swarm.com.de

Scherben BLOGUPLOADDIR

Ich versuche, BLOGUPLOADDIR zu zersplittern, konnte aber keinen Erfolg haben. Dies ist die Standardeinstellung:

define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );

Ich versuche es einzustellen:

if($wpdb->blogid<10){ 
    $bloggroup = 'global';
}else{
    $bloggroup = 'bloggroup'.floor($wpdb->blogid/2000+1); // 1999->1, 2000->2
}
define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$bloggroup}/{$wpdb->blogid}/files/" );

Also wird sich jedes 2000 Blog, jede Bloggruppe ändern. Ich habe versucht upload_dir zu filtern, aber ich muss es vorher definieren. Ich habe sunrise.php ausprobiert, aber $ wpdb-> blogid ist dort anscheinend nicht definiert. Was ist der richtige Weg dafür?

4
Ünsal Korkmaz

Kopieren Sie den Text von wp-includes/ms-settings.php von Zeile 25 bis Zeile 127 in sunrise.php. Fügen Sie unten Ihre BLOGUPLOADDIR -Definitionen hinzu.

// 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 lädt sunrise.php. Wenn die Ausführung zu ms-settings.php zurückkehrt, werden $current_site und $current_blog gesetzt, und die große if-Anweisung wird übersprungen. Denken Sie daran, Ihre sunrise.php zu aktualisieren, wenn Sie WordPress aktualisieren.

Extreme Hacky-Lösungen, für die keine Copypasta erforderlich ist, erfordern eine der Überschreibungen von wp_start_object_cache() (die einzige Funktion, die zwischen dem Erkennen von $current_blog und dem Aufrufen von ms_upload_constants() verwendet werden kann).

4