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 Dateifunctions.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.



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:



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):
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_add_unique_comment_meta' ); |
4 |
function tutsplus_add_unique_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
add_comment_meta( 1, 'twitter_handle', 'tommcfarlin', true ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
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:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_add_comment_meta' ); |
4 |
function tutsplus_add_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
add_comment_meta( 1, 'random_value', rand() ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
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.



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.
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_update_comment_meta' ); |
4 |
function tutsplus_update_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
update_comment_meta( 1, 'unique_value', time() ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
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:



Und geben Sie ihn als vorherigen Wert im folgenden Code an:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_update_specific_meta' ); |
4 |
function tutsplus_update_specific_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
update_comment_meta( 1, 'unique_value', time(), '17123683' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
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.
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_get_comment_meta' ); |
4 |
function tutsplus_get_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
|
8 |
$arr_metadata = get_comment_meta( 1, 'unique_value', true ); |
9 |
var_dump( $arr_metadata ); |
10 |
|
11 |
}
|
12 |
|
13 |
return $content; |
14 |
|
15 |
}
|
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:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_get_one_comment_meta' ); |
4 |
function tutsplus_get_one_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
|
8 |
$arr_metadata = get_comment_meta( 1, 'random_value', true ); |
9 |
var_dump( $arr_metadata ); |
10 |
|
11 |
}
|
12 |
|
13 |
return $content; |
14 |
|
15 |
}
|
Der resultierende Wert wird in etwa so aussehen:
1 |
string(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 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:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_remove_unique_comment_meta' ); |
4 |
function tutsplus_remove_unique_comment_meta( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
delete_comment_meta( 1, 'unique_value' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Vor dem Ausführen dieses Codes sollte die Datenbank in etwa wie folgt aussehen:



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:



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:
1 |
<?php
|
2 |
|
3 |
add_filter( 'the_content', 'tutsplus_remove_comment_metadata' ); |
4 |
function tutsplus_remove_comment_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
delete_comment_meta( 1, 'random_value' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
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 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.
1 |
<?php
|
2 |
/**
|
3 |
* This file shows how to work with the common Comment Meta API functions.
|
4 |
*
|
5 |
* Namely, it demonstrates how to use:
|
6 |
* - add_comment_meta
|
7 |
* - update_comment_meta
|
8 |
* - get_comment_meta
|
9 |
* - delete_comment_meta
|
10 |
*
|
11 |
* Each function is hooked to 'the_content' so that line will need to be
|
12 |
* commented out depending on which action you really want to test.
|
13 |
*
|
14 |
* Also note, from the tutorial linked below, that this file is used form
|
15 |
* demonstration purposes only and should not be used in a production
|
16 |
* environment.
|
17 |
*
|
18 |
* Tutorial:
|
19 |
* https://code.tutsplus.com/tutorials/how-to-work-with-wordpress-post-metadata--cms-25715
|
20 |
*
|
21 |
* @version 1.0.0
|
22 |
* @author Tom McFarlin
|
23 |
* @package tutsplus_wp_metadata
|
24 |
*/
|
25 |
|
26 |
/* add_filter( 'the_content', 'tutsplus_add_unique_comment_meta' ); */
|
27 |
/**
|
28 |
* Adds a unique meta key and meta value for a user's Twitter handle
|
29 |
* to the comment metadata table associated with the comment having
|
30 |
* the ID of 1.
|
31 |
*
|
32 |
* @param string $content The content of the post.
|
33 |
* @return string $content THe content of the post.
|
34 |
*/
|
35 |
function tutsplus_add_unique_comment_meta( $content ) { |
36 |
|
37 |
if ( 1 === get_the_ID() ) { |
38 |
add_comment_meta( 1, 'twitter_handle', 'tommcfarlin', true ); |
39 |
}
|
40 |
|
41 |
return $content; |
42 |
|
43 |
}
|
44 |
|
45 |
/* add_filter( 'the_content', 'tutsplus_add_comment_meta' ); */
|
46 |
/**
|
47 |
* Adds a unique meta key and random meta value
|
48 |
* to the comment metadata table associated with the comment having
|
49 |
* the ID of 1.
|
50 |
*
|
51 |
* @param string $content The content of the post.
|
52 |
* @return string $content THe content of the post.
|
53 |
*/
|
54 |
function tutsplus_add_comment_meta( $content ) { |
55 |
|
56 |
if ( 1 === get_the_ID() ) { |
57 |
add_comment_meta( 1, 'random_value', rand() ); |
58 |
}
|
59 |
|
60 |
return $content; |
61 |
|
62 |
}
|
63 |
|
64 |
/* add_filter( 'the_content', 'tutsplus_update_comment_meta' ); */
|
65 |
/**
|
66 |
* Updates unique meta key and unique meta value for
|
67 |
* to the comment metadata table associated with the comment having
|
68 |
* the ID of 1.
|
69 |
*
|
70 |
* @param string $content The content of the post.
|
71 |
* @return string $content THe content of the post.
|
72 |
*/
|
73 |
function tutsplus_update_comment_meta( $content ) { |
74 |
|
75 |
if ( 1 === get_the_ID() ) { |
76 |
update_comment_meta( 1, 'unique_value', time() ); |
77 |
}
|
78 |
|
79 |
return $content; |
80 |
|
81 |
}
|
82 |
|
83 |
/* add_filter( 'the_content', 'tutsplus_update_specific_meta' ); */
|
84 |
/**
|
85 |
* Updates a unique meta key and random meta value with a specified value
|
86 |
* to the comment metadata table associated with the comment having
|
87 |
* the ID of 1.
|
88 |
*
|
89 |
* @param string $content The content of the post.
|
90 |
* @return string $content THe content of the post.
|
91 |
*/
|
92 |
function tutsplus_update_specific_meta( $content ) { |
93 |
|
94 |
if ( 1 === get_the_ID() ) { |
95 |
update_comment_meta( 1, 'random_value', time(), '17123683' ); |
96 |
}
|
97 |
|
98 |
return $content; |
99 |
|
100 |
}
|
101 |
|
102 |
/* add_filter( 'the_content', 'tutsplus_get_comment_meta' ); */
|
103 |
/**
|
104 |
* Gets an array of the comment metadata associated with the meta key
|
105 |
* in the comment metadata table associated with the comment having
|
106 |
* the ID of 1.
|
107 |
*
|
108 |
* @param string $content The content of the post.
|
109 |
* @return string $content THe content of the post.
|
110 |
*/
|
111 |
function tutsplus_get_comment_meta( $content ) { |
112 |
|
113 |
if ( 1 === get_the_ID() ) { |
114 |
|
115 |
$arr_metadata = get_comment_meta( 1, 'unique_value' ); |
116 |
var_dump( $arr_metadata ); |
117 |
|
118 |
}
|
119 |
|
120 |
return $content; |
121 |
|
122 |
}
|
123 |
|
124 |
/* add_filter( 'the_content', 'tutsplus_get_all_comment_meta' ); */
|
125 |
/**
|
126 |
* Gets an array of all the meta values associated with the specified meta key
|
127 |
* in the comment metadata table associated with the comment having
|
128 |
* the ID of 1.
|
129 |
*
|
130 |
* @param string $content The content of the post.
|
131 |
* @return string $content THe content of the post.
|
132 |
*/
|
133 |
function tutsplus_get_all_comment_meta( $content ) { |
134 |
|
135 |
if ( 1 === get_the_ID() ) { |
136 |
|
137 |
$arr_metadata = get_comment_meta( 1, 'random_value' ); |
138 |
var_dump( $arr_metadata ); |
139 |
|
140 |
}
|
141 |
|
142 |
return $content; |
143 |
|
144 |
}
|
145 |
|
146 |
/* add_filter( 'the_content', 'tutsplus_get_one_comment_meta' ); */
|
147 |
/**
|
148 |
* Gets a single value from a set of values associated with a meta key
|
149 |
* in the comment metadata table associated with the comment having
|
150 |
* the ID of 1.
|
151 |
*
|
152 |
* @param string $content The content of the post.
|
153 |
* @return string $content THe content of the post.
|
154 |
*/
|
155 |
function tutsplus_get_one_comment_meta( $content ) { |
156 |
|
157 |
if ( 1 === get_the_ID() ) { |
158 |
|
159 |
$arr_metadata = get_comment_meta( 1, 'random_value', true ); |
160 |
var_dump( $arr_metadata ); |
161 |
|
162 |
}
|
163 |
|
164 |
return $content; |
165 |
|
166 |
}
|
167 |
|
168 |
/* add_filter( 'the_content', 'tutsplus_remove_unique_comment_meta' ); */
|
169 |
/**
|
170 |
* Removes a unique meta value associated with the specified key
|
171 |
* to the comment metadata table associated with the comment having
|
172 |
* the ID of 1.
|
173 |
*
|
174 |
* @param string $content The content of the post.
|
175 |
* @return string $content THe content of the post.
|
176 |
*/
|
177 |
function tutsplus_remove_unique_comment_meta( $content ) { |
178 |
|
179 |
if ( 1 === get_the_ID() ) { |
180 |
delete_comment_meta( 1, 'unique_value' ); |
181 |
}
|
182 |
|
183 |
return $content; |
184 |
|
185 |
}
|
186 |
|
187 |
/* add_filter( 'the_content', 'tutsplus_remove_comment_metadata' ); */
|
188 |
/**
|
189 |
* Removes all meta values associated with the specified key
|
190 |
* to the comment metadata table associated with the comment having
|
191 |
* the ID of 1.
|
192 |
*
|
193 |
* @param string $content The content of the post.
|
194 |
* @return string $content THe content of the post.
|
195 |
*/
|
196 |
function tutsplus_remove_comment_metadata( $content ) { |
197 |
|
198 |
if ( 1 === get_the_ID() ) { |
199 |
delete_comment_meta( 1, 'random_value' ); |
200 |
}
|
201 |
|
202 |
return $content; |
203 |
|
204 |
}
|
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 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.