In dieser ganzen Serie haben wir uns einige Metadaten-APIs angesehen, die von WordPress angeboten werden. 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 ist, die WordPress bietet. 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, dann fangen wir an.
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.
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 Sie zu erwarten haben, 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:
tutsplus-metadata.php
im Verzeichnis Ihres Themes eingerichtet, und es ist in Ihrem Thema enthalten Functions.php
Datei.Wie ich in den vorherigen Artikeln verwendet habe, verwende ich folgende Anwendungen:
Schließlich werden alle Metadaten, mit denen wir arbeiten, im gespeichert wp_commentmeta
Datenbanktabelle, so dass alle Screenshots, die Sie in der Datenbank sehen, von dieser bestimmten Tabelle stammen.
Im Gegensatz zu einigen anderen Metadatentabellen, die wir gesehen haben, ist die wp_commentmeta
Tabelle beginnt 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 werden, dass dies auf der Website geschieht Hallo Welt! Post. Dieser Beitrag hat die ID von 1. Wenn Sie eine andere Seite verwenden möchten, ersetzen Sie sie einfach 1 mit der ID der betreffenden Stelle.
Lassen Sie uns mit all dem beginnen, was verfügbar ist.
Um mit dem Hinzufügen von Metadaten zu unseren Kommentaren zu beginnen, ist es wichtig, einen Blick auf die wp_kommentare
Tabelle, um zu sehen, welche Kommentare bereits vorhanden sind. Wenn Sie mit einer Neuinstallation von WordPress arbeiten, wird wahrscheinlich ein einzelner Datensatz angezeigt:
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.
Das add_comment_meta
Die Funktion akzeptiert drei Parameter und einen optionalen vierten Parameter. Wenn du bestanden hast wahr
Als vierter Parameter 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, die vom Anruf an generiert wurde
rand ()
im Meta-Wert-Argument.Es ist leicht genug, gerade zu bleiben, richtig? Wenn Sie einen einzelnen Wert mit einem einzigen Schlüssel verknüpfen möchten, übergeben Sie
wahr
als optionales viertes Argument; 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 zur Verfügung steht: Wenn Sie möchten, dass eindeutige Informationen in die Metadatentabelle geschrieben werden, können Sie diese verwenden
update_comment_meta
und es wird es als einen einzigartigen 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 von uns erstellten Datensätze aktualisieren, z. B. eine der Zufallszahlen, die wir im obigen Beispiel gesehen haben, können wir mit dem Datenbank-Frontend nachschlagen:
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, wie 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.
Eine andere Sichtweise ist vielleicht die folgende: Wenn mehrere Metadaten mit demselben Metaschlüssel hinzugefügt wurden (den wir in der Hinzufügen eindeutiger Metadaten Abschnitt oben), dann möchten Sie wahrscheinlich die gesamte Datensammlung abrufen.
Wenn Sie dagegen nur einen Datensatz abrufen möchten, weil Sie wissen, dass er eindeutig ist oder weil er mit dem erstellt wurde
update_comment_meta
Funktion, dann möchten Sie, dass WordPress es Ihnen in einem einzigen Wert zurückgibt.Das
get_comment_meta
Die Funktion 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 an
get_comment_meta
und Sie würden die Kommentar-ID und den Metaschlüssel angeben.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 angeben
get_comment_meta
Funktion. 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:
Zeichenfolge (9) "967432645"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 auch, dass, wenn Sie einen eindeutigen Wert verwenden, dieser immer noch 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. Das 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:
Schauen Sie sich nach dem Aktualisieren der Seite die Datenbank an und Sie sollten sehen, dass der Datensatz entfernt wurde und die Datenbank folgendermaßen aussehen sollte:
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.
Das heißt, wenn Sie einfach eine Kommentar-ID und einen Metaschlüssel an den übergeben
delete_comment_meta
Bei dieser Funktion 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:
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 Staging-Umgebung 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:
- Erstellen Sie drei separate Dateien: eine für jeden der untersuchten Typen von Metadaten-APIs.
- Kommentieren Sie die
add_filter
Anrufe, mit Ausnahme derjenigen, 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 Prüfung 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. Bis zum nächsten Artikel können Sie daran denken, dass 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 all meinen Artikeln, zögern Sie bitte nicht, Fragen oder Kommentare in den untenstehenden Feed zu schreiben, und ich möchte auf jeden einzelnen Artikel eingehen.
Ressourcen