Verstehen und Arbeiten mit Beiträgen in WordPress

Wie so viele Beispiele der WordPress-Terminologie kann der Begriff "Posts" verwirrend sein, da er sich auf einen Post-Typ sowie auf einen Inhaltstyp bezieht, der in einer bestimmten Datenbanktabelle gespeichert ist. 

Hier werde ich den Unterschied zwischen den beiden erläutern und die Beitragstypen im Detail betrachten.

Im vorherigen Teil dieser Serie habe ich die verschiedenen Inhaltstypen in WordPress untersucht, die in verschiedenen Datenbanktabellen gespeichert sind. Diese sind:

  • Beiträge
  • Benutzer
  • Bemerkungen
  • Links

In diesem Lernprogramm werde ich die Posts genauer untersuchen und die Posttypen, die Beziehungen zwischen ihnen und die Frage, wie das Verstehen all dies helfen kann, Ihnen helfen, mit ihnen zu arbeiten.

Beiträge definieren

Zuerst definiere ich die Beiträge und wie sie sich von den Beiträgen unterscheiden (ja, es ist verwirrend und das Hinzufügen eines Großbuchstabens macht die Dinge nicht viel klarer!):

  • EIN Post ist ein Inhaltselement, das im gespeichert ist wp_posts Tabelle. Jeder hat eine Post-Typ ihm zugewiesen, was sein könnte Post, Seite oder etwas anderes.
  • Beitrag ist ein Beitragstyp, der je nach Art der von Ihnen entwickelten Website für Blogbeiträge oder Nachrichten verwendet wird.

Das wp_posts Tabelle ist in der Abbildung unten dargestellt.

Sinn ergeben? Wenn nicht, lesen Sie weiter, alles wird klar!

Geben Sie Typen in WordPress ein

WordPress enthält fünf eingebaute Posttypen:

  • Post
  • Seite
  • Befestigung
  • Revision
  • Navigationsmenüelement

Zusätzlich können Sie Ihre eigenen benutzerdefinierten Beitragstypen mit der register_post_type () Funktion, was bedeutet, dass Ihre WordPress-Installation beliebig viele Post-Typen haben kann. Jeder Beitragstyp hat den gleichen Status wie die eingebauten Beitragstypen - gelegentlich habe ich gehört, dass Leute denken, dass "benutzerdefinierter Beitragstyp" selbst ein Beitragstyp ist. Es ist nicht!

Ich werde das an einem Beispiel veranschaulichen. Wenn Sie eine benutzerdefinierte Abfrage für Beiträge schreiben, fügen Sie den Argumenten Ihrer Abfrage Folgendes hinzu:

'post_type' => 'post'

Wenn Sie jedoch einen benutzerdefinierten Beitragstyp erstellt haben my_post_type, Sie würden es mit dem folgenden abfragen:

'post_type' => 'mein_post_type'

Sie können dies verwenden Post-Typ Argument, um jeden Beitragstyp abzufragen, und Sie können sogar mehrere Beitragstypen abfragen, wenn Sie möchten. Ich werde nicht ins Detail gehen, da es außerhalb des Rahmens dieses Tutorials liegt, aber Sie können mehr auf der WordPress-Codex-Seite lesen WP_Query.

Grundlegendes zu den Standardpost-Typen

Werfen wir einen kurzen Blick auf die eingebauten Post-Typen, wie sie einander ähnlich sind und wie sie sich unterscheiden. Beachten Sie, dass ich in der nachstehenden Tabelle den Begriff "Post" im allgemeinen Sinn verwende, um den Inhalt aller Beitragstypen zu beschreiben.

Post-Typ Benutzt für Anmerkungen
Post Blogbeiträge oder ähnliches Kernpost-Typ - aufgeführt auf der Hauptblogseite
Seite Statische Seiten Entwarf, einzeln angezeigt zu werden - wird im Allgemeinen nicht in Archiven verwendet (obwohl dies möglich ist).
Seiten können übergeordnete Elemente haben, die mit definiert werden post_parent Feld im Datensatz für die untergeordnete Seite.
Jede Seite kann mehrere Kinder haben, aber nur ein Elternteil.
Befestigung Dokumente und Bilder (die möglicherweise an einen Beitrag angehängt sind oder nicht) In einen Beitrag hochgeladene Medien haben die ID dieses Beitrags in ihrem post_parent Feld. Für Bilder, die über den Medienbildschirm im Dashboard hochgeladen werden, ist dieses Feld leer. Das guid Feld wird zum Speichern der URL der Mediendatei verwendet.
Revision Einzelne Überarbeitungen zu jedem Beitrag Jede Revision ist an einen Beitrag angehängt: der ICH WÜRDE dieses Beitrags wird in der Revision gespeichert post_parent Feld.
Navigationsmenüelemente Einzelne Navigationsmenüpunkte Jedes Menü enthält eine Reihe von Navigationselementen, von denen jedes als Beitrag gespeichert wird. Das menu_order In diesem Feld werden Informationen über die Reihenfolge der Navigationsmenüelemente gespeichert. Zusätzliche Daten wie das Ziel- und das übergeordnete Menüelement werden als Datensätze in der Datenbank gespeichert wp_postmeta Tabelle.

Benutzerdefinierte Beitragstypen können so registriert werden, dass sie sich wie die eingebauten Beitragstypen verhalten (außer Befestigung), aber der Standard ist Post. Jeder Beitragstyp hat eine eigene Schnittstelle.

Beziehungen zwischen Posts

Wie Sie der obigen Tabelle entnehmen können, ist die post_parent Feld ist ein wichtiges Feld, da es Informationen über Beziehungen zwischen verschiedenen Beiträgen speichert. Diese schließen ein:

  • übergeordnete und untergeordnete Seiten
  • Revisionen und die Post, auf die sie sich beziehen
  • Anhänge und den Beitrag, zu dem sie hochgeladen wurden

Du kannst den ... benutzen post_parent Feld auf verschiedene Weise in Ihren Abfragen. Um beispielsweise untergeordnete Seiten einer bestimmten Seite abzufragen, würden Sie Folgendes verwenden, wobei ICH WÜRDE ist die ID der übergeordneten Seite:

'post_parent' => 'ID'

Sie können eine ähnliche Abfrage verwenden, um Anhänge anzuzeigen, die zu einem bestimmten Beitrag hochgeladen wurden. Alternativ können Sie auch Anhänge ohne übergeordnete Elemente abfragen (d. H. Diejenigen, die direkt auf den Medienbildschirm im Dashboard hochgeladen werden).. 

Verwenden Sie dazu das folgende Argument:

'post_parent' => '0'

Es ist höchst unwahrscheinlich, dass Sie jemals eine Revision abfragen müssen, da Besucher nur Ihre veröffentlichten Inhalte sehen sollen.

Sie können auch verwenden post_parent_in mit einem Array von IDs, um die untergeordneten Elemente einer Reihe von Beiträgen oder Seiten zu identifizieren.

Zusammenfassung

Das verstehen wp_posts Tabelle und was sie speichert, ist ein wesentlicher Bestandteil des Verständnisses der WordPress-Datenbank. Wie Sie gesehen haben, die wp_posts Tabelle wird zum Speichern von Posts verwendet. Diese enthält fünf vordefinierte Posttypen (einschließlich Post) sowie eine beliebige Anzahl benutzerdefinierter Posttypen, die Sie selbst hinzufügen. 

Die Tabelle speichert auch Daten über die Beziehungen zwischen Beiträgen in der post_parent Feld.