Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Wie man mit WordPress-Kommentar-Metadaten arbeitet

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called How to Work with WordPress Metadata.
How to Work With WordPress User Metadata

German (Deutsch) translation by Wei Zhang (you can also view the original English article)

In dieser Serie haben wir uns einige Metadaten-APIs angesehen, die WordPress anbietet. Dies umfasst die Post-Meta-API und die User-Meta-API. Heute werden wir die Serie mit der WordPress Comment Meta API abrunden.

Beachten Sie, dass dies die endgültige Metadaten-API von WordPress ist. Ab WordPress 4.4 gibt es jetzt eine Term Metadata API. Um es vollständig zu verstehen, ist es wichtig, Taxonomien, Begriffe und deren Beziehungen im Kontext von WordPress zu verstehen. In einer kommenden Serie werde ich genau das behandeln.

Heute konzentrieren wir uns jedoch auf die Verwaltung von Metadaten, die mit Kommentaren verknüpft sind. Wenn Sie bisher noch nichts in dieser Serie gelesen haben, empfehle ich Ihnen, das bisher Besprochene zu überprüfen.

Wenn Sie alle aufgeholt sind, können wir loslegen.

Die WordPress-Kommentar-Meta-API

In dieser Serie haben wir die WordPress-Definition von Metadaten als Grundlage für das Verständnis der Darstellung dieser Informationen im Kontext unserer Umgebung verwendet.

Im Einzelnen haben wir gesagt:

Metadaten werden mit Schlüssel / Wert-Paaren behandelt. Der Schlüssel ist der Name des Metadatenelements. Der Wert ist die Information, die in der Metadatenliste in jedem einzelnen Beitrag angezeigt wird, dem die Informationen zugeordnet sind.

Im Einklang mit dem Rest des Inhalts, den wir in dieser Serie gesehen haben, gilt diese Definition für Kommentar-Metadaten genauso wie für Post-Metadaten und Benutzermetadaten.

Der Vorteil dabei ist, dass, sobald Sie die verschiedenen Metadaten-APIs, die wir behandelt haben, einmal im Griff sind, die Funktionsweise anderer Metadatenfunktionalitäten kaum überrascht sein sollte. Je nachdem, welche API Sie verwenden, kann es einige Unterschiede geben. Die Funktionsweise ist jedoch die gleiche.

Wie Sie sehen werden, ist dies auch bei der Kommentar-Metadaten-API der Fall.

Mit der Comment-Metadaten-API arbeiten

Wie bei den anderen APIs, die wir in dieser Serie untersucht haben, gibt es vier Hauptfunktionen, die wir untersuchen werden:

  • add_comment_meta
  • update_comment_meta
  • get_comment_meta
  • delete_comment_meta

Inzwischen wissen Sie wahrscheinlich, was zu erwarten ist, wenn Sie beispielsweise die Unterschiede zwischen dem Hinzufügen von Kommentar-Metadaten und dem Aktualisieren von Kommentar-Metadaten erwarten. Oder Sie arbeiten beispielsweise mit dem Löschen von Kommentar-Metadaten.

Das ändert nichts an der Tatsache, dass es sich lohnt, jede dieser API-Funktionen im Detail zu untersuchen, um sicherzustellen, dass wir alles Wissenswerte über die Arbeit mit ihnen enthalten.

Für den Rest dieses Artikels gehe ich davon aus:

  • Sie betreiben eine lokale Entwicklungsumgebung mit einem Webserver, Datenbankserver und PHP.
  • Sie haben eine Kopie von WordPress installiert.
  • Sie haben eine Kopie der Datei tutsplus-metadata.php im Verzeichnis Ihres Themes eingerichtet und in der Datei functions.php Ihres Themas enthalten.
  • Sie haben Ihr IDE- und Datenbank-Frontend Ihrer Wahl zur Verfügung.

Wie ich in den vorherigen Artikeln verwendet habe, verwende ich folgende Anwendungen:

Schließlich werden alle Metadaten, mit denen wir arbeiten, in der Datenbanktabelle wp_commentmeta gespeichert, sodass alle Screenshots, die Sie in der Datenbank sehen, von dieser bestimmten Tabelle stammen.

An empty comment metadata table

Im Gegensatz zu einigen anderen Metadatentabellen, die wir gesehen haben, ist die Tabelle wp_commentmeta leer (vorausgesetzt, Sie arbeiten mit einer relativ neuen Version von WordPress).

Dies ist gut, da wir dadurch eine klare Übersicht erhalten, die wir bei der Untersuchung der verschiedenen API-Funktionen verwenden können. Beachten Sie, dass wir für alle unten stehenden Beispiele sicherstellen, dass dies auf der Hello World geschieht! Post. Dieser Beitrag hat die ID 1. Wenn Sie eine andere Seite verwenden möchten, ersetzen Sie einfach 1 durch die ID des betreffenden Beitrags.

Lassen Sie uns mit all dem beginnen, was verfügbar ist.

Kommentar-Meta hinzufügen

Um mit dem Hinzufügen von Metadaten zu unseren Kommentaren zu beginnen, ist es wichtig, einen Blick auf die Tabelle wp_comments zu werfen, um festzustellen, welche Kommentare bereits vorhanden sind. Wenn Sie mit einer Neuinstallation von WordPress arbeiten, wird wahrscheinlich ein einzelner Datensatz angezeigt:

A single default WordPress comment

Dies ist der Standardkommentar, der im Lieferumfang von WordPress enthalten ist, und es wird für die von uns verwendeten Beispiele ausreichen.

Wenn Sie dagegen mit einer Datenbank mit Kommentaren arbeiten, kein Problem! Sie müssen nur wissen, mit welchem Kommentar Sie arbeiten (über seine ID) und sicherstellen, dass Sie mit dem Code, den wir unten verwenden, übereinstimmen.

Wie bei anderen APIs, die wir in dieser Serie überprüft haben, gibt es zwei Formen, um Metadaten zu Kommentaren hinzuzufügen: einzigartig und nicht eindeutig. Wir werden beide überprüfen.

Hinzufügen eindeutiger Metadaten

Die Funktion add_comment_meta akzeptiert drei Parameter und einen optionalen vierten Parameter. Wenn Sie als vierten Parameter den Wert true angeben, werden die Metadaten nur hinzugefügt, wenn der angegebene Metaschlüssel nicht vorhanden ist.

Sinn ergeben? Lass uns einen Blick darauf werfen. Zunächst richten wir eine Funktion ein, die dem ersten Kommentar zugeordnete Metadaten hinzufügt (dies gilt jedoch nur für den Beitrag mit der ID 1):

Beachten Sie, dass ich den Parameter true übergeben habe. Jedes Mal, wenn ich die Seite aktualisiere, sieht WordPress, dass ich möchte, dass dieser Wert eindeutig ist, so dass keine weiteren Informationen zur Datenbanktabelle hinzugefügt werden, die diesem Metaschlüssel zugeordnet ist.

Hinzufügen nicht eindeutiger Metadaten

Wenn ich dagegen mehrere Werte mit demselben Metaschlüssel verknüpfen möchte, würde ich den Parameter "true" entfernen. Verwenden Sie beispielsweise den folgenden Code:

Und dann die Seite drei Mal neu laden. Wenn alles wie erwartet verläuft, sehen Sie drei neue Datensätze, von denen jeder eine Zufallszahl enthält, wie sie vom Aufruf von rand() im Meta-Wert-Argument generiert wird.

Multiple values with the same meta key

Es ist leicht genug, gerade zu bleiben, richtig? Wenn Sie möchten, dass ein einzelner Wert einem einzelnen Schlüssel zugeordnet wird, übergeben Sie als optionales viertes Argument true. sonst nichts angeben.

Kommentar-Meta aktualisieren

Wenn Sie vorhandene Kommentar-Metadaten aktualisieren möchten, müssen Sie die Kommentar-ID, den Metaschlüssel und den Meta-Wert kennen. Das bedeutet, dass WordPress den angegebenen Metaschlüssel betrachtet und dem angegebenen Metawert zuordnet.

Wenn der Meta-Wert vorhanden ist, wird er überschrieben. Wenn der Meta-Wert nicht vorhanden ist, wird er erstellt. Beachten Sie in diesem letzten Satz, dass beim Hinzufügen von Metadaten eine gewisse Funktionalität verwendet werden kann: Wenn Sie möchten, dass eindeutige Informationen in die Metadatentabelle geschrieben werden, können Sie update_comment_meta verwenden und diese als eindeutigen Wert schreiben.

Dies kann zu etwas verwirrendem Code führen (da es so aussieht, als würde es etwas aktualisieren, das nicht vorhanden ist), aber Sie können auch erzwingen, dass nur ein einzelner Datensatz für den angegebenen Metaschlüssel vorhanden ist.

Was passiert, wenn ein Metaschlüssel mit mehreren Metawerten verknüpft ist? In diesem Fall müssen Sie den Wert kennen, den Sie ersetzen möchten. In einigen Fällen wissen Sie möglicherweise genau, was das ist. In anderen Fällen müssen Sie möglicherweise die Informationen abrufen, um sie zu finden (die wir im nächsten Abschnitt behandeln werden).

Angenommen, wir möchten einen der Datensätze aktualisieren, die wir erstellt haben, beispielsweise eine der Zufallszahlen, die wir im obigen Beispiel gesehen haben, können wir mit dem Datenbank-Frontend nachschlagen:

An updated random value related to multiple keys

Und geben Sie ihn als vorherigen Wert im folgenden Code an:

Danach können wir die Seite aktualisieren, einen Blick in unsere Datenbank werfen und die Änderung sehen. Beachten Sie, dass die Arbeit, die wir gerade gemacht haben, für eine Entwicklungsumgebung relevant ist und nicht die Art und Weise ist, in der Sie dies in der Produktion erledigen würden.

Stattdessen müssen Sie möglicherweise eine Abfrage ausführen oder einen Satz von Werten abrufen, bevor Sie sie aktualisieren. Dies führt uns zum nächsten Thema.

Kommentar-Meta abrufen

Wenn Sie Kommentar-Metadaten abrufen, müssen Sie entscheiden, ob Sie einen einzelnen Wert oder alle mit dem angegebenen Meta-Schlüssel verknüpften Werte abrufen möchten.

Möglicherweise können Sie dies auch folgendermaßen betrachten: Wenn mehrere Metadaten mit demselben Metaschlüssel hinzugefügt wurden (den wir oben im Abschnitt "Adding Unique Metadata" behandelt haben), möchten Sie wahrscheinlich die gesamte Sammlung von Datensätzen abrufen.

Wenn Sie dagegen nur einen Datensatz abrufen möchten, weil Sie wissen, dass er einzigartig ist oder weil er mit der Funktion update_comment_meta erstellt wurde, möchten Sie, dass WordPress ihn in einem einzigen Wert an Sie zurückgibt.

Die Funktion get_comment_meta erfordert drei Argumente und ein optionales viertes Argument, je nachdem, was Sie abrufen möchten.

Ein Array abrufen

Angenommen, Sie möchten eine Sammlung aller Werte abrufen, die einem einzelnen Metaschlüssel zugeordnet sind. Dazu rufen Sie get_comment_meta auf und geben die Kommentar-ID und den Metaschlüssel an.

Im obigen Code drucken wir sie an den Webbrowser, aber Sie könnten mit diesen Daten auf jede Weise arbeiten, die Sie möchten, sobald Sie sie abgerufen haben. Das Wichtigste dabei ist jedoch, dass der Wert als Array zurückgegeben wird.

Einzelnen Wert abrufen

Wenn Sie einen einzelnen Wert abrufen möchten, müssen Sie lediglich die Kommentar-ID und den Metaschlüssel in der Funktion get_comment_meta angeben. Wenn Sie sich mit einem Metaschlüssel mit mehreren Werten befassen, wird der erste Wert, der erstellt wurde, der zurückgegeben.

Angenommen, es gibt drei Datensätze, die einem Metaschlüssel zugeordnet sind, und Sie möchten nur einen Wert abrufen. Ihr Code wird so aussehen:

Der resultierende Wert wird in etwa so aussehen:

Wenn Sie wissen, dass die Daten eindeutig sind, sieht der Code genauso aus wie der zurückgegebene Wert.

Der einzige Unterschied besteht darin, dass das erste Beispiel aus einem Satz von mehreren Datensätzen und das zweite Beispiel aus einem einzelnen Datensatz abgerufen wurde. Beachten Sie außerdem, dass Sie einen eindeutigen Wert erhalten, der jedoch weiterhin als Array, aber als einzelnes Indexarray zurückgegeben wird.

Dies ist wichtig zu beachten, denn wenn Sie vorhaben, einen Vergleich durchzuführen, insbesondere mit einem Wert eines anderen Typs, z. B. einer Ganzzahl, müssen Sie den Wert aus dem Array nehmen und wahrscheinlich den Typ ausführen Konvertierung vor dem Vergleich.

Kommentar-Meta löschen

Das Löschen von Metadaten ist eine unkomplizierte Operation: Es erfordert die Kommentar-ID, einen Metaschlüssel und einen optionalen Metawert.

Wenn Sie keinen Metawert angeben, werden alle dem Metaschlüssel zugeordneten Datensätze entfernt. Wenn Sie jedoch den Metawert angeben, wird nur dieser einzelne Datensatz entfernt.

Eindeutige Werte entfernen

In diesem Beispiel wird davon ausgegangen, dass wir wissen, dass für einen bestimmten Metaschlüssel ein einziges Stück Metadaten vorhanden ist. Dies bedeutet, dass der Metaschlüssel für jeden Benutzer eindeutig sein muss. Möglicherweise verwendet er so etwas wie eine eindeutig generierte ID, einen Zeitstempel oder ähnliches.

Um einen eindeutigen Wert zu entfernen, übergeben wir einfach die Kommentar-ID und den Metaschlüssel:

Vor dem Ausführen dieses Codes sollte die Datenbank in etwa wie folgt aussehen:

Metadata in the comment metadata table

Nachdem Sie die Seite aktualisiert haben, werfen Sie einen Blick auf die Datenbank und Sie sollten sehen, dass der Datensatz entfernt wurde und die Datenbank folgendermaßen aussehen sollte:

A unique value having been removed

Wir werden ein wenig mehr über die Vorsichtsmaßnahmen beim Löschen von Daten im nächsten Abschnitt besprechen.

Nicht eindeutige Werte entfernen

Angenommen, es gibt mehrere Werte, die einem einzigen Metaschlüssel zugeordnet sind. Wir haben dies in diesem Artikel mehrmals gesehen. Wenn Sie alle mit einem Metaschlüssel verknüpften Datensätze löschen möchten, müssen Sie keinen Metawert angeben.

Wenn Sie also einfach eine Kommentar-ID und einen Metaschlüssel an die Funktion delete_comment_meta übergeben, werden alle Kommentar-Metadaten entfernt. Schreiben Sie den folgenden Code und führen Sie ihn aus:

Aktualisieren Sie Ihre Seite und überprüfen Sie die Datenbank. Wenn keine Probleme aufgetreten sind, sollte Ihre Datenbank frei von allen Datensätzen sein, die diesen Metaschlüssel hatten:

No random values in the comment metadata table

Denken Sie jedoch daran, dass das Entfernen von Daten aus einer Datenbank gefährlich sein kann, insbesondere wenn Sie versehentlich etwas löschen, das Sie niemals löschen wollten. Zu diesem Zweck ist es wichtig, Sicherungen Ihrer Datenbank in Produktionsumgebungen aufzubewahren, damit Sie sie immer wiederherstellen können, wenn etwas schief geht.

Dies zeigt außerdem, warum es so wichtig ist, über eine lokale Entwicklungsumgebung und eine Stagingumgebung zu testen, bevor der Code in einer Produktionsumgebung bereitgestellt wird.

Der vollständige Quellcode

Wie in dieser gesamten Serie bereitgestellt, finden Sie hier eine Kopie des gesamten Quellcodes, den wir in diesem Artikel behandelt haben. Es ist vollständig dokumentiert und enthält Kommentare, die in einigen der obigen Abschnitte nicht angezeigt werden.

Wenn Sie dies mit dem Code aus den übrigen Artikeln der Serie angeben, müssen Sie vorsichtig sein. Da alles mit demselben Haken registriert wird, kann dies zu ungewöhnlichen Ergebnissen führen.

Um dies zu bekämpfen, empfehle ich eines der folgenden zwei Szenarien:

  1. Erstellen Sie drei separate Dateien: eine für jeden der untersuchten Typen von Metadaten-APIs.
  2. Kommentieren Sie die Aufrufe von add_filter, mit Ausnahme der Aufrufe, mit denen Sie gerade arbeiten.

Beides erleichtert die Arbeit mit dem gesamten Code, den wir bisher behandelt haben.

Fazit

Unabhängig davon, ob Sie mit einer Metadaten-API oder einer der anderen APIs arbeiten, sollte jeder WordPress-Entwickler immer schnellen Zugriff auf den WordPress-Codex haben, um schnell zu ermitteln, welche APIs verfügbar sind und wie sie verwendet werden sollten.

Während wir diese Serie durchgearbeitet haben, sollten Sie sehen, wie die um Metadaten entwickelte API konsistent ist. Dies ermöglicht eine benutzerfreundliche, leistungsfähige API zur Erweiterung einiger Kernfunktionen von WordPress.

Außerdem habe ich erwähnt, dass es eine andere Metadaten-API gibt, die in WordPress 4.4 eingeführt wurde. Ich habe vor, das in einer kommenden Serie zu behandeln, aber es wird eine Untersuchung einiger anderer Funktionen erfordern, die darauf basieren.

Im Moment haben wir eine Menge Material bereitgestellt, mit dem Sie Ihre vorhandenen WordPress-Kenntnisse verbessern können. Denken Sie daran, dass bis zum nächsten Artikel alle meine Kurse und Tutorials auf meiner Profilseite verfügbar sind. Weitere Artikel über die Entwicklung von WordPress und WordPress finden Sie in meinem Blog.

WordPress hat eine aktive Wirtschaft. Es gibt Designs, Plugins, Bibliotheken und viele andere Produkte, mit deren Hilfe Sie Ihre Site und Ihr Projekt ausbauen können. Die Open-Source-Funktion der Plattform macht sie außerdem zu einer großartigen Option, mit der Sie Ihre Programmierkenntnisse verbessern können. In jedem Fall können Sie sehen, was auf dem Envato Marketplace verfügbar ist.

Fühlen Sie sich frei, mir auf Twitter auch bei @tommcfarlin zu folgen, wo ich über verschiedene Softwareentwicklungspraktiken spreche, von denen viele für die Webentwicklung relevant sind und viele speziell auf WordPress ausgerichtet sind.

Wie bei allen meinen Artikeln, zögern Sie bitte nicht, Fragen oder Kommentare in den untenstehenden Feed zu schreiben.

Ressourcen

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.