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:
Ich beginne damit, wie WordPress Daten für die Hauptsite speichert.
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.
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. |
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 Inhaltenwp_signups
, da diese noch nicht registriert sindwp_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.
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.
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.