Wie ist eine WordPress Datenbank aufgebaut?
Struktur der WordPress-Datenbank
Die WordPress-Datenbank besteht aus 12 Tabellen. Jede Tabelle beginnt standardmäßig mit dem Präfix wp_; Dies kann jedoch während des Erstinstallations- und Konfigurationsprozesses geändert werden. Das Ändern des Präfixes wird im Allgemeinen aus WordPress-Sicherheitsgründen empfohlen , insbesondere wenn Sie beabsichtigen oder bereits mehrere Installationen auf demselben Server haben.
Die 12 Tabellen, aus denen sich die WordPress-Datenbank zusammensetzt, lauten wie folgt (in alphabetischer Reihenfolge aufgeführt):
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
Wir gehen nun jede Tabelle einzeln durch und schauen uns an, welche Daten sie speichert und wie sie intern aufgebaut ist.
Tabellenstruktur
Bevor wir uns mit den Details jeder Tabelle befassen, lohnt es sich, sich etwas Zeit zu nehmen, um sich anzusehen, wie sie strukturiert ist. Wenn Sie mit der Datenbankdokumentation nicht vertraut sind, bietet Ihnen dieser Abschnitt einen Crashkurs, den Sie im nächsten Abschnitt hilfreich finden werden. Wenn Sie andererseits mit SQL-Tabellen ziemlich vertraut sind, können Sie gerne weiter springen.
- Feldname – Dies ist der Name des Feldes, den Sie in der SQL-Tabelle finden
- Beschreibung – Wir haben dies eingefügt, um Ihnen zu helfen, zu verstehen, welche Art von Daten das Feld enthält
- Typ – Dies ist der Datentyp, den das Feld akzeptiert. Zahlen in Klammern stellen die harte Grenze für die Anzahl der zulässigen Zeichen dar, die wir eingeben können
- Null – es ist nicht klar, warum dieses Feld im Moment verwendet wird
- Schlüssel – Dies sagt uns, ob der Eintrag ein Schlüssel ist oder nicht. Es gibt verschiedene Arten von Schlüsseln, darunter:
- Primär
- Primär (Teil)
- Index
- Index (Teil)
- Einzigartig
- Mehrere
- Standard – Wenn der Eintrag einen Standardwert hat, wird der Standardwert hier aufgelistet
- Notizen – Alle zusätzlichen Notizen
wp_commentmeta
Die Tabelle wp_commentsmeta speichert Metadaten zu Kommentaren. Kommentare werden separat in der Tabelle wp_comments gespeichert. Die Tabelle hat folgende Felder:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
meta_id | Dies ist eine eindeutige ID für den Eintrag. Es erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
Kommentar_ID | Dies ist die ID des Kommentars, auf den sich die Metadaten beziehen, wie sie in der Tabelle wp_comments zu finden ist | bigint(20) ohne Vorzeichen | Index | 0 | |
meta_key | Dies identifiziert die Art der Metadaten, für die der Eintrag bestimmt ist | varchar(255) | ja | Index | Null |
meta_wert | Dies sind die eigentlichen Metadaten | Langtext | ja | Null |
wp_comments
Die wp_comments-Tabelle speichert Beitragskommentare. Metadaten zu Kommentaren werden in der Tabelle wp_commentmeta gespeichert. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
Kommentar_ID | Dies ist eine eindeutige ID für den Eintrag. Es erhöht sich automatisch | groß(20) | Primär | N / A | |
comment_post_ID | Dies ist die ID des Beitrags, für den der Kommentar geschrieben wurde, wie in der Tabelle wp_posts zu finden | groß(20) | Index | 0 | |
Kommentar_Autor | Dies ist der Name des Autors, der den Kommentar geschrieben hat | kleiner Text | |||
Kommentar_Autor_E-Mail | Dies ist die E-Mail-Adresse des Autors, der den Kommentar geschrieben hat | varchar(100) | Index | ||
comment_author_url | Dies ist die Website-URL des Autors, der den Kommentar geschrieben hat | varchar(200) | |||
Kommentar_Autor_IP | Dies ist die IP-Adresse des Autors, der den Kommentar geschrieben hat | varchar(100) | |||
Kommentar_Datum | Dies ist das Datum und die Uhrzeit, an dem der Kommentar gepostet wurde | Terminzeit | 0000-00-00 00:00:00 | ||
comment_date_gmt | Dies ist das GMT (Greenwich Meridian Time)-Datum und die Zeit, zu der der Kommentar gepostet wurde | Terminzeit | Index und Index Pt2 | 0000-00-00 00:00:00 | |
Kommentar_Inhalt | Dies ist der eigentliche hinterlassene Kommentar | Text | |||
kommentar_karma | Dies steht Plug-ins für die Verwaltung von Kommentaren zur Verfügung | int(11) | |||
Kommentar_genehmigt | Dies zeigt an, ob der Kommentar genehmigt wurde oder nicht | varchar(20) | Index Teil 1 | 0 | |
Kommentar_Agent | Von hier aus wurde der Kommentar gepostet | varchar(255) | |||
Kommentartyp | Dies ist die Art des hinterlassenen Kommentars | varchar(20) | |||
Kommentar_Eltern | Wenn der Kommentar eine Antwort ist, gibt dieses Feld den übergeordneten Kommentar an | bigint(20) ohne Vorzeichen | Index | 0 | |
Benutzeridentifikation | Wenn ein kommentierender Benutzer registriert ist, ist dies seine ID, wie sie in wp_users verfügbar ist | bigint(20) ohne Vorzeichen | 0 |
wp_links
Diese Tabelle wurde ursprünglich erstellt, um Blogrolls zu unterstützen, eine Funktion, die ab WordPress 3.5 eingestellt wurde. Es wird aus Gründen der Abwärtskompatibilität beibehalten, aber nicht mehr verwendet. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
link_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint (20) ohne Vorzeichen | Primär | ||
URL verknüpfen | Dies ist die URL des Links | varchar(255) | |||
link_name | |||||
Dies ist der Name des Links | varchar(255) | ||||
Link_Bild | Dies ist die URL des linkbezogenen Bildes | varchar(255) | |||
Linkziel | Dies ist der Zielrahmen des Links | varchar(25) | |||
link_beschreibung | Dies ist eine Beschreibung des Links | varchar(255) | |||
link_sichtbar | Dadurch erfahren wir, ob der Link öffentlich angezeigt wird oder nicht | varchar(20) | Index | Y | |
link_besitzer | Dies ist die Benutzer-ID des Benutzers, der den Link erstellt hat, wie in wp_users verfügbar | bigint (20) ohne Vorzeichen | 1 | ||
link_bewertung | Dies ist die Bewertung des Links | int(11) | 0 | ||
link_aktualisiert | Dies ist das Datum und die Uhrzeit, zu der der Link aktualisiert wurde | Terminzeit | 0000-00-00 00:00:00 | ||
link_rel | Dies ist die Beziehung des Links | varchar(255) | |||
link_notes | Dies sind Hinweise zum Link | Mitteltext | |||
link_rss | Dies ist die RSS-Feed-Adresse des Links | varchar(255) |
wp_options
Die über die Verwaltungskonsole konfigurierten WordPress-Einstellungen werden hier gespeichert. Plugins und Themes speichern hier normalerweise auch Einstellungsinformationen, wie im folgenden Screenshot dargestellt. Hier können wir sehen, dass die Scan-Häufigkeitsoption unseres eigenen Website-Dateiänderungsmonitors auf täglich eingestellt ist.
Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
option_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch. | bigint(20) ohne Vorzeichen | Primär | ||
Optionsname | Dies ist der Name der Option/Einstellung | varchar(64) | Einzigartig | ||
Optionswert | Dies ist der Wert der zu speichernden Einstellung | Langtext | |||
automatisch laden | Diese Einstellung teilt wp_load_alloptions() mit, ob die Option automatisch geladen werden soll oder nicht | varchar(20) | Index | ja |
wp_postmeta
Posts-Metadaten, die jeden Post begleiten, werden hier gespeichert. Metadaten können angehängte Dateien, Miniaturansichten, gewünschte Post-Slugs und andere solche Informationen enthalten. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
meta_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
Feldname post_id | Dies ist die ID des Beitrags, mit dem die Metadaten verknüpft sind, wie in wp_posts verfügbar | bigint(20) ohne Vorzeichen | Index | 0 | |
meta_key | Dies ist ein Indexschlüssel, der die Metadaten identifiziert, da jeder Beitrag mehr als ein Metadatum haben kann | varchar(255) | ja | Index | Null |
meta_wert | Dies sind die eigentlichen Metadaten | Langtext | ja | Null |
wp_posts
Die wp_posts-Tabelle ist eine wichtige und enthält den Kern der WordPress-Daten. Es enthält die eigentlichen Beiträge, Seiten sowie Navigationsmenüelemente, wie im folgenden Beispiel zu sehen ist, das die Standard-Beispielseite zeigt, die in jeder WordPress-Neuinstallation enthalten ist.
Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
ICH WÜRDE | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär und Index (Teil 4) | ||
post_autor | Dies ist die ID des Autors, der den Beitrag geschrieben hat, wie in wp_users verfügbar | bigint(20) ohne Vorzeichen | Index | 0 | |
nach Datum | Dies ist das Datum und die Uhrzeit, zu der der Beitrag erstellt wurde | Terminzeit | Index (Teil 3) | 0000-00-00 00:00:00 | |
post_date_gmt | Dies ist das GMT (Greenwich Mean Time)-Datum und die Uhrzeit, zu der der Beitrag erstellt wurde | Terminzeit | 0000-00-00 00:00:00 | ||
post_inhalt | Dies ist der eigentliche Inhalt des Beitrags | Langtext | |||
post_titel | Dies ist der Titel des Beitrags | Text | |||
post_auszug | Dies ist ein Auszug aus dem Beitrag | Text | |||
Poststatus | Dies ist der Status des Beitrags | varchar(20) | Index (Teil 2) | veröffentlichen | |
Kommentarstatus | Dies sagt uns, ob Kommentare zu dem Beitrag erlaubt sind oder nicht | varchar(20) | offen | ||
ping_status | Dies sagt uns, ob Ping und Trackbacks erlaubt sind oder nicht | varchar(20) | offen | ||
post_passwort | Beiträge können mit einem beliebigen hier hinterlegten Passwort passwortgeschützt werden | varchar(20) | |||
Anschriftname | Dies ist der URL-Slug des Beitragstitels | varchar(200) | Index | ||
to_ping | Dies ist eine Liste von URLs, an die WordPress Pingbacks senden sollte, wenn der Beitrag aktualisiert wird | Text | |||
gepingt | Dies ist eine Liste von URLs, die WordPress bei der Aktualisierung gepingt hat | Text | |||
post_modified | Dies ist das Datum und die Uhrzeit der letzten Änderung des Beitrags | Terminzeit | 0000-00-00 00:00:00 | ||
post_modified_gmt | Dies ist das GMT-Datum und die Uhrzeit der letzten Änderung des Beitrags | Terminzeit | 0000-00-00 00:00:00 | ||
post_content_gefiltert | Dies ist eine gefilterte Version von post_content, die normalerweise von Plugins für Caching-Zwecke verwendet wird | Langtext | |||
post_parent | Wenn es sich bei dem Beitrag um eine Überarbeitung oder einen Anhang handelt, entsteht dadurch die Eltern-Kind-Beziehung | bigint(20) ohne Vorzeichen | Index | 0 | |
Führer | Dies ist der Global Unique Identifier (GUID) des Beitrags | varchar(255) | |||
menu_order | Dies ist die Bestellnummer, in der Seiten und Nicht-Post-Elemente erscheinen | int(11) | 0 | ||
Post-Typ | Dies identifiziert den Inhaltstyp | varchar(20) | Index (Teil 1) | Post | |
post_mime_type | Dies ist der Mime-Typ von Post-Anhängen | varchar(100) | |||
Anzahl Kommentare | Dies ist die Gesamtzahl der Kommentare, Trackbacks und Pingbacks | groß(20) | 0 |
wp_terms
Begriffe sind Klassifizierungsobjekte, die zur Klassifizierung von Objekten in WordPress verwendet werden. Beispielsweise sind Kategorien und Tags, die in Beiträgen verwendet werden, Arten von Begriffen. Diese Tabelle enthält alle verschiedenen Arten von Begriffen, die in WordPress verwendet werden. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
term_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
Name | Dies ist der Name des Begriffs | varchar(200) | Index | ||
Schnecke | Das ist der Schnickschnack des Begriffs | varchar(200) | Mehrere | ||
Begriff_Gruppe | Dies ist ein Alias, den Themes und Plugins verwenden können, um Begriffe miteinander zu gruppieren | groß(10) | 0 |
wp_termmeta
Diese Tabelle speichert die Metadaten, die den in wp_terms gefundenen Begriffen zugeordnet sind. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
meta_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
term_id | Dies ist die ID des Begriffs, auf den sich die Metadaten beziehen, wie in wp_terms verfügbar | bigint(20) ohne Vorzeichen | Index | 0 | |
meta_key | Dies ist ein Identifikationsschlüssel für den Begriff Metadaten | varchar(255) | ja | Index | NULL |
meta_wert | Dies sind die eigentlichen Metadaten | Langtext | ja | NULL |
wp_term_relationships
Diese Tabelle verwaltet Beziehungen zwischen Beiträgen und Taxonomien. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
Objekt Identifikation | Dies ist die ID des Beitrags, wie sie in wp_posts verfügbar ist | bigint(20) ohne Vorzeichen | Grundschule (Teil 1) | 0 | |
term_taxonomy_id | Dies ist die ID der Begriffstaxonomie, wie sie in wp_term_taxonomy verfügbar ist | bigint(20) ohne Vorzeichen | Primär (Teil 2) und Index | 0 | |
Begriff_Bestellung | Dies ist die Reihenfolge des Begriffs | int(11) | 0 |
wp_term_taxonomy
Diese Tabelle enthält Begriffstaxonomien und als solche einen Kontext, in dem sie verwendet werden können. Beispielsweise können wir den Begriff Datenbank als Beitragskategorie und als Produktkategorie verwenden (vorausgesetzt, wir verkaufen Datenbankdienste). In diesem Fall sind Beitragskategorie und Produktkategorie Begriffstaxonomien. Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
term_taxonomy_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
term_id | Dies ist die ID des Begriffs, wie sie in wp_terms verfügbar ist | bigint(20) ohne Vorzeichen | Einzigartig (Teil 1) | 0 | |
Taxonomie | Dies ist die Schnecke der Taxonomie | varchar(32) | Unique (Teil 2) und Index | ||
Bezeichnung | Dies ist eine Beschreibung der Taxonomie | Langtext | |||
Elternteil | Dies ist die ID der übergeordneten Taxonomie, wenn die Taxonomie eine untergeordnete Taxonomie ist | bigint(20) ohne Vorzeichen | 0 | ||
zählen | Dies ist die Anzahl der Objekte, die dieser Taxonomie zugeordnet sind | groß(20) | 0 |
wp_usermeta
Diese Tabelle speichert zusätzliche Benutzerdaten, die nicht in der Tabelle wp_users zu finden sind. WordPress selbst sowie Plugins oder Themes können diese Tabelle verwenden.
Ein Beispiel für Benutzermetadaten ist der Spitzname des Benutzers. Obwohl WordPress dieses Feld standardmäßig enthält, ist es immer noch Teil der Metadaten, wie unten gezeigt. Ein weiteres Beispiel ist WooCommerce; ein E-Commerce-Plugin, das diese Tabelle verwendet, um Kundeninformationen wie die Lieferadresse zu speichern.
Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
umeta_id | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
Benutzeridentifikation | Dies ist die ID des Benutzers, auf die sich die Informationen beziehen, wie sie in wp_users zu finden sind | bigint(20) ohne Vorzeichen | Index | 0 | |
meta_key | Dies ist eine Schlüsselkennung für den Metaeintrag | varchar(255) | ja | Index | Null |
meta_wert | Dies sind die eigentlichen Metadaten | Langtext | ja | Null |
wp_users
Die Informationen der WordPress-Benutzer werden hier gespeichert. Da Benutzer ein wesentlicher Bestandteil des WordPress-Ökosystems sind, ist diese Tabelle von wesentlicher Bedeutung.
Die Tabelle speichert nur die Kerninformationen für jeden Benutzer, wie im folgenden Beispiel gezeigt. Alle anderen Informationen werden in der Tabelle wp_usermeta gespeichert.
Die Tabelle hat folgende Spalten:
Spaltenname | Beschreibung | Typ | Null | Taste | Standard |
---|---|---|---|---|---|
ICH WÜRDE | Dies ist eine eindeutige ID für den Eintrag. Erhöht sich automatisch | bigint(20) ohne Vorzeichen | Primär | ||
Benutzer-Anmeldung | Dies ist der Benutzername des Benutzers | varchar(60) | Index | ||
Benutzerpass | Dies ist das Passwort des Benutzers | varchar(64) | |||
user_nicename | Dies ist der Anzeigename des Benutzers | varchar(50) | Index | ||
Benutzer Email | Dies ist die E-Mail-Adresse des Benutzers | varchar(100) | |||
user_url | Dies ist die URL des Benutzers (z. B. Website) | varchar(100) | |||
Benutzer_registriert | Dies ist das Datum und die Uhrzeit, zu der der Benutzer registriert wurde | Terminzeit | 0000-00-00 00:00:00 | ||
user_activation_key | Dies ist der Aktivierungsschlüssel des Benutzers, der zum Zurücksetzen seines Passworts verwendet wird | varchar(60) | |||
Benutzerstatus | Dies wird ab WordPress 3.0 nicht mehr verwendet, sondern verwendet, um anzuzeigen, ob der Benutzer Spam war | int(11) | 0 | ||
Anzeigename | Dies ist der öffentliche Anzeigename des Benutzers | varchar(250) |
Machen Sie sich mit der WordPress-Datenbank vertraut
Datenbanken können für Uneingeweihte ziemlich einschüchternd sein – schließlich enthalten sie alle Daten, die für das Funktionieren von WordPress erforderlich sind. Es stimmt zwar, dass ein Fehltritt hier die Seite zum Absturz bringen kann, aber lassen Sie sich davon nicht einschüchtern. Schließlich kann die Kenntnis der WordPress-Datenbank Ihre Bemühungen zur Fehlerbehebung erheblich erleichtern, falls dies erforderlich sein sollte.
Das Einrichten einer Test- oder Staging-Umgebung kann Ihnen einen sicheren Raum bieten, in dem Sie frei experimentieren können, ohne das Risiko einzugehen, Ihre Website offline zu schalten. Sie können sogar kostenlos eine XAMPP-Staging-Umgebung auf Ihrem Computer einrichten – die Ihnen alles bietet, was Sie brauchen, um die WordPress-Datenbank zu beherrschen.
Der Beitrag Der ultimative Leitfaden zur WordPress-Datenbank erschien zuerst auf WP White Security .
*** Dies ist ein syndizierter Blog des Security Bloggers Network von WP White Security , der von Joel Farrugia verfasst wurde . Lesen Sie den Originalbeitrag unter: https://www.wpwhitesecurity.com/ultimate-guide-wordpress-database/