Daten in WordPress verstehen und damit arbeiten

Eine WordPress-Website besteht aus drei Hauptelementen:

  1. Die WordPress-Installation selbst
  2. Der Inhalt der WP-Inhalt Verzeichnis, das die Designs, Plugins und Uploads enthält
  3. Die Datenbank, in der der gesamte Inhalt gespeichert ist.

Die meisten WordPress-Benutzer kommen nie in direkten Kontakt mit der Datenbank und wissen möglicherweise nicht einmal, dass sie ständig daran arbeitet, ihre Website aufzufüllen. Wenn WordPress jede Art von Seite bedient, sei es die Startseite, ein einzelner Beitrag oder eine Seite oder ein Archiv, wird auf die Datenbank zugegriffen, um Inhalte aufzurufen, die Editoren und Administratoren der Site hinzugefügt haben.

In dieser Serie von Tutorials werde ich verschiedene Aspekte der WordPress-Datenbank detailliert betrachten. Die Serie besteht aus neun Teilen, die Folgendes abdecken:

  1. Einführung
  2. Beziehungen zwischen Daten
  3. Inhaltstypen
  4. Benutzerdaten
  5. Metadaten
  6. Taxonomien, Kategorien, Tags und Begriffe
  7. Taxonomien vs. Post-Metadaten
  8. Die Optionstabelle
  9. WordPress Multisite-Daten

In dieser Einführung gebe ich einen Überblick über die Datenbanktabellen und deren Beziehung zu den Inhaltstypen, mit denen Sie in WordPress arbeiten können, und finde heraus, was wo gespeichert ist.

Inhaltstypen in WordPress

Da die Datenbanktabellen zum Speichern von Inhalt verwendet werden, müssen Sie den Inhalt verstehen, bevor Sie ihn verstehen können. Es gibt verschiedene Arten von Inhalten in WordPress:

  • Beiträge
  • Seiten
  • benutzerdefinierte Posttypen
  • Anlagen
  • Links
  • Navigationsmenüpunkte (die als einzelne Beiträge gespeichert werden)

Diesen Inhaltstypen sind dann Daten zugeordnet:

  • Kategorien
  • Stichworte
  • benutzerdefinierte Taxonomien und Bedingungen
  • Post-Metadaten

Darüber hinaus gibt es noch andere Arten von Inhalten, die unterschiedlich gespeichert werden:

  • Widgets
  • Optionen
  • Benutzer
  • Sites (für eine Installation mit mehreren Standorten)
  • fest codierter Inhalt (zu Ihrem Design oder Ihren Plugins hinzugefügt)
  • Inhalte aus anderen Quellen (Inhalte Dritter, auf die über Feeds, Streaming oder andere Techniken zugegriffen wird)

Alle diese Arten von Inhalten werden irgendwo in der Datenbank gespeichert (oder gelegentlich in Themes oder Plugin-Dateien, wie ich es zeige). Sie können einen eigenen Eintrag haben oder Teil eines anderen Eintrags sein (z. B. gestreamte Inhalte, die in einem Beitrag codiert sind). Sie können auch mit Daten in anderen Tabellen verknüpft sein. Beispielsweise werden Daten zu Beiträgen mit Daten zu Benutzern verknüpft, sodass WordPress weiß, wer welche Beiträge verfasst hat.

Die WordPress-Datenbankstruktur

WordPress verwendet eine Reihe von Datenbanktabellen mit Beziehungen zwischen ihnen, um die zu speichernde Datenmenge zu minimieren. Dadurch werden 1: 0-Beziehungen erstellt. Dies bedeutet, dass beispielsweise ein Benutzer über viele Einträge verfügen kann, die er mit seinem Benutzerdatensatz erstellt hat. Das spart Platz - wenn WordPress alle Benutzerdaten für jeden Benutzer in Bezug auf jeden Beitrag, den er verfasst hat, speichert, bedeutet das eine Menge wiederholter Daten und viel Platz.

Das folgende Diagramm stammt aus dem WordPress-Codex und zeigt die Datenbanktabellen und wie sie verknüpft sind:

Die meisten Tabellen sind über ein Feld mit einer oder mehreren anderen Tabellen verknüpft. Dieses Feld ist ein eindeutiger Bezeichner für jeden Datensatz, z post_id. Dies ist in dieser Tabelle genauer dargestellt:

Tabelle Daten gespeichert Verbunden mit
wp_posts Beiträge, Seiten, Anhänge, Revisionen und Navigationsmenüelemente wp_postmeta (über post_id)
wp_term_relationships(über post_id)
wp_postmeta Metadaten für jeden Beitrag wp_posts (über post_id)
wp_kommentare Bemerkungen wp_posts (über post_id)
wp_commentmeta Metadaten für jeden Kommentar wp_kommentare (über comment_id)
wp_term_relationships Beziehungen zwischen Posten und Taxonomien wp_posts (über post_id)
wp_term_taxonomy (über term_taxonomy_id)
wp_term_taxonomy Taxonomien (einschließlich Kategorien und Tags) wp_term_relationships (über term_taxonomy_id)
wp_terms Ihre Kategorien und Tags sowie die den benutzerdefinierten Taxonomien zugewiesenen Begriffe wp_term_taxonomy (über term_id)
wp_links Die Links in Ihrer Blogroll (falls Sie noch eine haben) wp_term_relationships (über link_id)
wp_users Benutzer wp_posts (über post_author)
wp_user_meta Metadaten für jeden Benutzer wp_users (über Benutzeridentifikation)
wp_options Site-Einstellungen und Optionen (über die Einstellungsbildschirme sowie über Plugins und Designs festgelegt) n / a

Einige Dinge sind erwähnenswert:

  • Datenbanktabellen haben die wp_ Präfix standardmäßig Sie können dies ändern, wenn Sie Ihre Site konfigurieren, aber es ist nicht viel wert.
  • Die Kerntabelle ist die wp_posts Tabelle, in der die meisten Ihrer Daten gespeichert werden. Dies hält (fast) alles andere zusammen.
  • Nur eine Tabelle ist an keine andere angehängt - die wp_options Tabelle. In diesen Tabellen werden Daten zur Site und zur WordPress-Installation gespeichert, die sich nicht auf Daten zu Beiträgen oder Benutzern beziehen.
  • Zum Speichern von Daten zu Taxonomien werden zwei Tabellen verwendet - diese werden später in dieser Serie genauer erläutert.
  • Das wp_users und wp_kommentare Tabellen sind nicht verknüpft. Obwohl Sie angeben können, dass Benutzer zum Kommentieren registriert werden müssen, speichert WordPress keine Daten zu Kommentaren für jeden Benutzer, der sie gepostet hat. 
  • Bei einer Installation mit mehreren Standorten werden zusätzliche Tabellen erstellt. Ich habe diese hier nicht aufgenommen, da dies außerhalb des Rahmens dieses Tutorials liegt.

Inhalte mit Datenbanktabellen verknüpfen

Nachdem Sie sich die Inhaltstypen in WordPress und die zum Speichern verwendeten Datenbanktabellen angesehen haben, kann es hilfreich sein, die beiden zu vergleichen. Die folgende Tabelle zeigt, welche Datenbanktabelle zum Speichern der einzelnen Inhaltstypen verwendet wird.

Inhaltstyp Tabelle (n)
Beiträge wp_posts
Seiten wp_posts
benutzerdefinierte Posttypen wp_posts
Anlagen wp_posts
Links wp_links
Navigationsmenüpunkte wp_posts
Kategorien wp_terms
Stichworte wp_terms
benutzerdefinierte Taxonomien wp_term_taxonomy
Taxonomiebegriffe wp_terms
Post-Metadaten wp_post_meta
Widgets wp_options
Optionen wp_options
Benutzer wp_users
fest codierter Inhalt wp_posts (wenn zu Beiträgen hinzugefügt)
wp_options (falls zu Widgets hinzugefügt)
Theme- und Plugin-Dateien (falls fest codiert)
Inhalte von Dritten wp_posts (wenn zu Beiträgen hinzugefügt)
wp_options (wenn über Widgets oder Plugins hinzugefügt)
Theme- und Plugin-Dateien (falls fest codiert)

Möglicherweise haben Sie festgestellt, dass nicht alle Datenbanktabellen in dieser Tabelle enthalten sind. Dies liegt daran, dass einige von ihnen zum Speichern von Metadaten und andere zum Speichern von Beziehungen verwendet werden. Beide werden später in dieser Serie ausführlicher behandelt.

Zusammenfassung

Hoffentlich haben Sie jetzt ein besseres Verständnis dafür, wie und wo WordPress unterschiedliche Datentypen mithilfe der Datenbankstruktur speichert. In dieser Serie wird auf alle Aspekte dieses Themas näher eingegangen. 

Im nächsten Teil werde ich die Beziehungen zwischen Daten untersuchen und genauer untersuchen, wie bestimmte Tabellen verknüpft werden und wie einige dazu verwendet werden, um Daten zu Beziehungen zu speichern.