Alle Netzwerk-Sites werden als Haupt-Blog angezeigt

Ich habe jetzt ein komisches Problem auf einer unserer Seiten. Wir haben von einer Sub-Domain-Multisite-Installation zu einer Unterordner-Installation für unsere Staging-Site-Einrichtung gewechselt. Also gingen alle URLs davon aus:

site.website.com

dazu

staging.otherwebsite.com/site

Das Problem ist, dass WordPress die Titel und Links der anderen Websites nicht zu erkennen scheint. Es zeigt 10 Seiten, aber alle haben dieselben Informationen wie der Hauptblog (gleicher Titel und gleicher Link zum Dashboard-Bearbeitungsbildschirm).

Einige Dinge, die ich ausprobiert habe, änderte die Konfigurationsdatei so, dass sie Unterordner-Multisites unterstützt:

 define('WP_ALLOW_MULTISITE', true); define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', false ); $base = '/'; define( 'DOMAIN_CURRENT_SITE', 'staging.otherwebsite.com' ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); 

Ich musste auch die databasetabellen ändern. Ich ging hinein und änderte die wp_blogs für jede Site in der wp_blogs Tabelle, damit sie der richtigen Struktur entspricht. Ich denke, ich habe das auch für die wp_site Tabelle wp_site .

Meine Htaccess-Datei sieht wie folgt aus:

 RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] 

Was könnte das Problem verursachen, wo WordPress alle Seiten im Menü anzeigt, als ob sie alle den gleichen Titel und Link hätten (im Grunde die Hauptwebseite 10 Mal, was die gleiche Anzahl an Seiten ist, die ich habe)? Gibt es irgendwelche Schritte, die ich vermisste, wenn ich eine Subdomain-Installation in eine Unterordner-Installation umschalte? Wenn es irgendwelche zusätzlichen Informationen gibt, die ich zur Verfügung stellen kann, lassen Sie mich wissen, und ich werde es hinzufügen.

Vielen Dank

AKTUALISIEREN

Ich habe eine Antwort geschrieben, aber es funktioniert nicht … vollständig. Es triggers es vorübergehend. Wenn ich diese function vor dem Aufruf der function get_blog_details .

Nun, hier ist der komische Teil, wenn ich diese function wp_cache_flush() hinzufüge, bevor ich jede Blog-ID get_blog_details() gibt die function get_blog_details() die gleichen Blog-Details zurück.

Wenn ich den Cache innerhalb der Schleife bündig hinzufüge, bevor ich die Blogdetails erhalte, erhalte ich für jeden die richtigen Blogdetails. Wenn ich die Flush-function entferne, kommt das Problem zurück.

Ich recherchiere das, während ich nachdenke, warum das so ist. Irgendwelche Details dazu werden mir große Zeit helfen.

Solutions Collecting From Web of "Alle Netzwerk-Sites werden als Haupt-Blog angezeigt"

Nachdem ich tief in die WordPress-coredateien eingedrungen bin, habe ich herausgefunden, dass irgendwo auf dem Weg, die Blog-Details zu erhalten, eine Caching-function war.

Es war diese Zeile in der ms-blogs.php Datei.

 $details = wp_cache_get( $blog_id . $all, 'blog-details' ); 

Es stellt sich heraus, dass ich eine Cache-Version der Blog-Details hatte, die einige Dinge von der vorherigen Installation vermasselt hat. Ich habe die Datei wp-config.php überprüft und den W3-Cache aktiviert. Ich habe es vorübergehend mit einem Flush behoben. Ich habe diesen Code hinzugefügt.

 global $wp_object_cache; $wp_object_cache->flush(); 

Nachdem die Seite neu geladen wurde, bemerkte ich, dass die Blogdetails korrekt angezeigt wurden.

Aktualisieren

Ok Also ich denke ich habe es dieses Mal echt gemacht. Ich habe das W3-Cache-Plugin deaktiviert, aber es funktionierte nicht für mich, also dachte ich, das Problem rührte von woanders her. Ich bin nach vielen Versuchen und Fehlern in den Plugins-Ordner gegangen und habe einfach beschlossen, den w3cache-Plugin-Ordner in etwas anderes umzubenennen. Das hat anscheinend das Problem behoben. Ich denke, dass etwas immer noch auf das Plugin referenzierte, obwohl es durch WordPress deaktiviert wurde.

Die Dateien advanced-cache.php und object-cache.php müssen entfernt werden, um nicht mehr auf das w3caching-Plugin zu verweisen.

Sie können das Plugin erneut hinzufügen und es funktioniert möglicherweise beim zweiten Mal.

Ich wollte das nur teilen, da es mich eine Weile verrückt machte.