Verstehen und Arbeiten mit Daten in WordPress - Multisite

In den früheren Teilen dieser Serie haben wir die verschiedenen Tabellen in der WordPress-Datenbank durchgearbeitet und untersucht, welche Daten sie speichern, wie sie miteinander interagieren und welche Funktionen Sie verwenden, um mit ihnen zu interagieren.

In diesem letzten Teil werde ich mit Multisite fortfahren. Die Datenbank für eine WordPress Multisite-Installation enthält zusätzliche Tabellen: einen Satz von Tabellen für jeden Standort, der im Netzwerk ausgeführt wird, und einige zusätzliche Tabellen für das Netzwerk selbst sowie die Tabellen für den Core-Standort. 

Dies bedeutet, dass es drei Elemente gibt, um zu verstehen, wie die Datenbank in Multisite funktioniert:

  • Datenbanktabellen für die Hauptsite
  • Datenbanktabellen für das Netzwerk
  • Datenbanktabellen für jede weitere Site.

Ich beginne damit, wie WordPress Daten für die Hauptsite speichert.

Datenbanktabellen für die Core Site in Multisite

Für den Kernstandort in einem Netzwerk verwendet WordPress dieselben 11 Datenbanktabellen wie bei einer einzelnen Standortinstallation:

  • wp_posts
  • wp_postmeta
  • wp_kommentare
  • wp_commentmeta
  • wp_users
  • wp_usermeta
  • wp_links
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms
  • wp_options

Diese enthalten Daten zur Hauptsite. Zwei von ihnen enthalten auch Daten, die sich auf das restliche Netzwerk beziehen. Diese sind:

  • wp_users
  • wp_usermeta

Die anderen neun Tabellen arbeiten auf dieselbe Weise wie für eine einzelne Site - sie speichern Daten über den Inhalt der Hauptsite. In den letzten beiden Tabellen werden jedoch auch Benutzerdaten gespeichert, die für das gesamte Netzwerk relevant sind, sowie Benutzerdaten, die nur vom Kernstandort verwendet werden. Ich werde das gleich untersuchen.

Datenbanktabellen für das Netzwerk

Neben der Speicherung von Benutzerdaten für das gesamte Netzwerk in zwei der Kerntabellen erstellt WordPress in einer Multisite-Installation auch zusätzliche Tabellen, die Daten über das Netzwerk und seine Standorte enthalten. 

Diese sind:

  • wp_blogs
  • wp_blog_versions
  • wp_registration_log
  • wp_signups
  • wp_site
  • wp_sitemeta
  • wp_sitecategories (wahlweise)

WordPress verwendet diese sieben (oder sechs) Tabellen sowie die beiden Benutzertabellen, um alle Daten des Multisite-Netzwerks zu speichern. Hier ist, was jeder von ihnen speichert:

Tabelle Daten Anmerkungen
wp_blogs In diesem Feld werden Details zu jedem Standort im Netzwerk gespeichert, sodass für jeden Standort nur ein Datensatz vorhanden ist. Felder enthalten blog_id, Domain, Eingetragen (die Daten, auf denen die Site erstellt wurde) und letzte Aktualisierung (wieder ein Datum).
wp_blog_versions Die aktuelle Datenbankversion für jeden Standort, die beim Aktualisieren des Netzwerks aktualisiert wird. Drei Felder: blog_id, db_version und letzte Aktualisierung
wp_registration_log Der Admin-Benutzer, der erstellt wird, wenn jede Site registriert ist Für jeden Standort (gekennzeichnet durch blog_id) speichert die Tabelle die Benutzeridentifikation für den Administrator die E-Mail-Adresse und das Datum der Registrierung.
wp_signups Speichert Daten auf Sites, für die angemeldet, aber nicht aktiviert wurden Felder enthalten eine eindeutige signup_id Für jeden Datensatz die registrierte Domäne, der Titel, die Benutzeranmeldung und die E-Mail-Adresse. Sobald eine Site aktiviert ist, wird dieser Datensatz gelöscht und ein Datensatz erstellt wp_blogs.
wp_site Speichert die URL für die Hauptsite Diese Tabelle hat nur einen Datensatz mit drei Feldern: die ID des Hauptstandorts (der sein wird) 1), seine Domäne und den Pfad (normalerweise /)
wp_sitemeta Speichert Metadaten für das Netzwerk Diese Tabelle entspricht dem von wp_options für das gesamte Netzwerk. Es enthält alle Metadaten, die sich auf die Netzwerkeinstellungen beziehen, sowie kleinere Mengen an Metadaten für einzelne Standorte. Es hat vier Felder: ein einzigartiges meta_id, Webseitenadresse (welche Links zu wp_blogs), meta_key und meta_value.
wp_sitecategories Optionale Tabelle nur erstellt, wenn globale Ausdrücke für eine Site aktiviert sind. Wenn Sie globale Begriffe aktivieren, können Sie Begriffe an mehreren Standorten im Netzwerk verwenden. Die Tabelle (falls erstellt) hat vier Felder: cat_ID, Katzenname, kategoriename und letzte Aktualisierung. Beachten Sie, dass diese Tabellen trotz der Feldnamen nicht nur Kategorien, sondern Begriffe speichert.
wp_users Die Daten aller Benutzer werden hier und nicht für jeden Standort gespeichert, da einzelne Benutzer auf mehrere Standorte im Netzwerk zugreifen können. In einer Multiste-Installation werden in WordPress zwei zusätzliche Felder erstellt wp_users Tabelle: Spam und gelöscht; beides sind boolesche Werte, deren Standardeinstellung ist NEIN.
wp_usermeta Das wp_usermeta Tabellen speichert alle Metadaten für alle Site-Benutzer Die Tabelle wird auf dieselbe Weise verwendet wie bei einer Installation an einem Standort.

Beziehungen zwischen den Tabellen

Die meisten dieser Tabellen beziehen sich auf die wp_blogs Tisch über die blog_ID Feld, da alle Daten, die für die Standorte im Netzwerk benötigt werden, mit dem Kernstandortdatensatz verknüpft werden müssen. Die Ausnahmen sind:

  • wp_sitecategories, welche Links zu Beiträgen und anderen Inhalten
  • wp_signups, da diese noch nicht registriert sind
  • wp_usermeta, das hat eine indirekte Verbindung zu wp_blogs über wp_users

Weitere Informationen zu jeder dieser Tabellen und ihren Feldern finden Sie auf der Codex-Seite der Datenbank.

Datenbanktabellen für Standorte in einem Netzwerk

Die Art und Weise, in der WordPress die Daten für jede Site in Ihrem Netzwerk speichert, ist ziemlich einfach: Es erstellt mehrere Kopien jeder Datenbanktabelle, eine für jede Site. Es werden jedoch keine zusätzlichen Kopien von erstellt wp_users und wp_usermeta da diese alle in der Haupttabelle gespeichert sind.

Um zwischen den Tabellen für jede Site zu unterscheiden, fügt WordPress dem Tabellennamen die Site-ID hinzu, z. B. für Site 2, wp_posts wird wp_2_posts.

Jede Site wird die folgenden Tabellen haben:

  • wp_xx_posts
  • wp_xx_postmeta
  • wp_xx_kommentare
  • wp_xx_commentmeta
  • wp_xx_links
  • wp_xx_term_relationships
  • wp_xx_term_taxonomy
  • wp_xx_terms
  • wp_xx_options

Das xx oben wird durch die numerische Site-ID ersetzt. Alle diese Tabellen speichern Daten auf dieselbe Weise für jeden Standort wie bei einer einzelnen Standortinstallation.

Zusammenfassung

Wenn Sie Daten aus einer WordPress Multisite-Installation bearbeiten, abrufen oder verschieben, ist es wichtig zu verstehen, wie Multisite Daten anders speichert als eine Multisite-Installation. 

Wie ich gezeigt habe, gibt es drei Hauptelemente: Tabellen für die Core-Site; Tabellen, in denen die Datenbank über das gesamte Netzwerk gespeichert wird; und für jede neue Site erstellte Tabellen. Die Struktur dieser Strukturen ähnelt der Installation eines einzelnen Standorts, sofern Sie daran denken, dass die beiden Tabellen, in denen Daten zu Benutzern gespeichert sind, nicht für jeden Standort doppelt vorhanden sind.