German (Deutsch) translation by Wei Zhang (you can also view the original English article)
Im ersten Beitrag dieser Serie gab ich einen Überblick über die verschiedenen Arten von Metadaten, die von WordPress angeboten werden, wo sie aufbewahrt werden und was wir in dieser Serie behandeln werden.
Außerdem habe ich definiert, was Metadaten sind. seine Rolle in WordPress und wie es für uns als Entwickler relevant ist. Aber die Einführung sollte genau das sein: ein Überblick über das, was wir im Rest dieser Serie behandeln werden.
In diesem Beitrag beginnen wir mit der Erkundung der WordPress Post Meta API, um herauszufinden, warum es nützlich ist, was wir damit machen können und wie die in WordPress verfügbaren Methoden genutzt werden können.
Ein Haftungsausschluss für alle
Erstens, wenn Sie ein fortgeschrittener Entwickler sind, ist es unwahrscheinlich, dass diese Tutorialserie Ihnen sehr helfen wird. Es ist eher für diejenigen gedacht, die ein wenig mit Themen gearbeitet haben, vielleicht den Plugin-Code angepasst haben und bereit sind, einen Schritt weiter zu gehen, indem sie den Beiträgen (oder den Beitragstypen), aus denen ihr Projekt besteht, zusätzliche Informationen hinzufügen.
Beachten Sie zweitens, dass die Codebeispiele in diesem Lernprogramm nicht in einer Produktionsumgebung verwendet werden. Stattdessen soll der Code, den wir uns ansehen werden, nicht überall dort verwendet werden, wo jedermann öffentlichen Zugriff auf die Website hat.
Im Moment plane ich, fortgeschrittenere Techniken für dieses Thema zu behandeln, nachdem wir uns durch diese Serie gearbeitet haben. Im Moment beschäftigen wir uns nur mit der Arbeit mit der API.
Warum allerdings? Was ist die Verzögerung bei der Erfassung zusätzlicher Informationen? Einfach gesagt, hat es mit der Website-Sicherheit zu tun. Insbesondere wenn wir Informationen in die Datenbank schreiben, müssen wir davon ausgehen, dass die Daten nicht in einem Format vorliegen, das für uns sicher ist. Wir müssen die Daten desinfizieren.
Es gibt eine völlig andere Gruppe von APIs zum Bereinigen von Daten, die wir erforschen müssen, die in Verbindung mit den Metadaten-APIs funktionieren. Dies ist jedoch nicht das Lernprogramm dafür.
Ich weiß, es mag ein wenig frustrierend sein, über diese APIs zu sprechen, ohne sie zu nutzen. Denken Sie jedoch daran, dass dies eine Einführung in die API sein soll. Die Lernprogramme sollten ausreichend Informationen enthalten, damit Sie mit den Metadaten auf Ihrem Computer arbeiten können. Sie sollten jedoch auch genügend Fragen hinterlassen, sodass wir in einer zukünftigen Artikelserie tiefer in das Thema eintauchen können.
Lassen Sie uns mit dem WordPress Post Meta API beginnen. Und sei gewarnt: Dies ist ein langes Tutorial.
Eine Einführung in die API
Bevor wir uns den Code ansehen, müssen Sie sicherstellen, dass Sie über die notwendigen Tools zum Durchsuchen der Datenbank verfügen, in der Ihre WordPress-Installation ausgeführt wird. Zu den verfügbaren Tools gehören:
Aber nutzen Sie das, was Sie am liebsten mögen. Solange Sie die Daten in der Datenbank anzeigen können, können Sie loslegen.
Lassen Sie uns als Nächstes verstehen, wie WordPress Post-Metadaten definiert. Gemäß dem Kodex:
WordPress bietet Postautoren die Möglichkeit, einem Beitrag benutzerdefinierte Felder zuzuweisen. Diese willkürlichen Zusatzinformationen werden als Metadaten bezeichnet.
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.
Einfacher ausgedrückt, WordPress ermöglicht es uns, benutzerdefinierte Informationen in die Datenbank zu schreiben, sie mit jedem gewünschten Posting zu verknüpfen und sie bei Bedarf abzurufen. Ferner werden die Informationen unter Verwendung eindeutiger Schlüssel / Wert-Paare gespeichert.
Eigene Metadaten schreiben
Wenn Ihnen das fremd erscheint, machen Sie sich keine Sorgen. Die Idee ist, dass jeder Wert, den Sie speichern, mit einem eindeutigen Schlüssel zusammenhängt (so wie ein Türknauf einen eindeutigen Schlüssel zum Entsperren hat).
Der Schlüssel ist, wie wir den Wert aus dem Beitrag abrufen können. Dies wirft jedoch eine Frage auf: Was passiert, wenn einem Beitrag mehrere Metadaten zugeordnet sind? Wenn also in einem bestimmten Beitrag mehrere Metadaten gespeichert sind, wie können wir dann eindeutige Metadaten abrufen?
Wie wir sehen werden, wenn wir uns einige der folgenden Beispielcodes ansehen, müssen wir nicht nur den beim Speichern von Daten verwendeten Schlüssel verwenden, sondern auch die eindeutige ID des Beitrags an die Funktion übergeben.
Nichts funktioniert jedoch besser, als es in Aktion zu sehen. Angenommen, Sie haben WordPress auf Ihrem lokalen Rechner installiert und können mit der Bearbeitung von functions.php
im Kern Ihres Standarddesigns zufrieden sein.
Als Referenz
Ich verwende folgende Tools:
Das Wichtigste ist, dass Sie sowohl WordPress als auch das oben erwähnte Thema ausführen.
Wenn Sie mit einer anderen IDE und einem Datenbank-Front-End zufrieden sind, ist das völlig in Ordnung.
Wir haben in der Einführung dieses Artikels viele Informationen behandelt, aber es wird sich als nützlich erweisen, wenn wir nicht nur die Post-Meta-API, sondern auch die anderen APIs betrachten. Behalte diesen Verstand also. Ich werde mich in zukünftigen Artikeln auch auf diesen Artikel beziehen.
Lasst uns in die API einsteigen.
Ein sehr wichtiger Hinweis
Die Art und Weise, wie wir den Code integrieren, ist nicht die professionelle Art, Änderungen an Ihrem Design vorzunehmen, diese Funktionalität zu implementieren oder mit einer API zu kommunizieren. Wir machen dies für die ersten Schritte eines Anfängers in die WordPress-Entwicklung.
In einer Folgeserie nehmen wir die Arbeit, die wir in dieser Serie geleistet haben, in ein wartungsfähigeres Plugin auf, das auch einen größeren Fokus auf Wartbarkeit, Sicherheit und mehr enthält.
Im Moment konzentrieren wir uns auf die Grundlagen der API.
Das Thema vorbereiten
Denken Sie daran, dass ich eine grundlegende Installation von WordPress zusammen mit dem zwanzig-sechzehn-Thema für die Demos verwende, die wir in diesem Tutorial und den restlichen Tutorials der Serie sehen werden.
Zweitens werden wir Änderungen in functions.php
vornehmen. Dies ist normalerweise nicht der beste Ort, um diese Änderung vorzunehmen. Stellen Sie jedoch sicher, dass Sie den obigen Hinweis gelesen haben, bevor Sie fortfahren.
Nehmen wir an, dass Sie den Server, die IDE und die functions.php
in Ihrem Editor ausgeführt haben. Obwohl Ihr Screenshot etwas anders aussehen kann, sollte er diesem ähneln:



Die Herausforderung bei der Arbeit mit functions.php
besteht darin, dass sie bereits mit Code gefüllt ist, der das vorhandene Design unterstützt. Obwohl wir unseren Code letztendlich in ein Plugin in einer zukünftigen Serie verschieben, sollten wir zumindest den ersten Schritt beim Erstellen unserer Datei machen, damit wir unseren Code selbst enthalten können.
Verwenden Sie Ihre IDE Ihrer Wahl:
- Erstellen Sie eine neue Datei im Stammverzeichnis des Twentysixteen-Designs.
- Benennen Sie die Datei
tutsplus-metadata.php
.
Wenn Sie fertig sind, sollten Sie so etwas in Ihrem Dateisystem haben:



Schließlich müssen wir sicherstellen, dass wir dies in functions.php
aufnehmen. Fügen Sie dazu die folgende Codezeile direkt unter dem sich öffnenden PHP-Tag hinzu.
1 |
<?php
|
2 |
|
3 |
include_once( 'tutsplus-metadata.php' ); |
Laden Sie Ihren Browser neu. Wenn alles gut geht, sollten Sie das Design genau so sehen, wie es war, bevor Sie Ihre Datei zu functions.php
hinzufügen.
Jetzt machen wir uns an die Arbeit.
Fertig machen
Wir erinnern uns an unsere vorherige Diskussion, dass wir drei Dinge benötigen, um Metadaten zur Datenbank hinzuzufügen:
- eine Beitrags-ID
- ein eindeutiger Schlüssel, mit dem wir die Metadaten identifizieren können
- einen Wert, mit dem wir speichern, den wir später abrufen möchten
In diesem Lernprogramm müssen Sie lediglich Metadaten hinzufügen, die in der Standardeinstellung "Hello World!" Angezeigt werden. Beitrag, der standardmäßig in jeder Installation von WordPress enthalten ist.
Angenommen, wir möchten einige Metadaten hinzufügen, die unseren Namen enthalten. Der Metaschlüssel, den wir verwenden, ist also my_name
und der Wert, den wir verwenden, ist der Name Ihres Namens. In meinem Fall ist es "Tom McFarlin".
Als erstes wollen wir eine Funktion definieren, die sich in the_content
einfügt. Dadurch können wir unseren Text ausgeben, wenn die Funktion ausgeführt wird. Wenn Sie nicht mit Haken vertraut sind, lesen Sie bitte diese Serie.
Ihr ursprünglicher Code sollte so aussehen:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
echo "[We are here.]" |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Wenn Sie diesen Code ausführen, wird die Zeichenfolge "[we are here.]" sollte über dem Postinhalt vor allem anderen erscheinen, und es sollte nur auf der Hello World geschehen! Post. Dies liegt daran, dass wir prüfen, ob die ID 1 ist, bevor wir die Zeichenkette echo
verwenden.
Beachten Sie, dass die endgültige Version des am Ende dieses Beitrags freigegebenen Codes mit Kommentaren versehen wird. Bis dahin werde ich erklären, was der Code tut, wenn wir jeden neuen Code in unseren Code einfügen.
Metadaten hinzufügen
Jetzt fügen wir einige Metadaten hinzu. Fügen Sie dazu diesen Code in den Rumpf der Bedingung ein, sodass wir sicher sind, dass wir dies für Hello World tun. Da wir in der Bedingung bereits die ID von 1 überprüfen, können wir einfach den Code entfernen, den wir im vorherigen Abschnitt hinzugefügt haben, und ihn aktualisieren.
Im Hauptteil der Bedingung rufen wir die add_post_meta
-API-Funktion auf, die wie folgt aussieht:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Es wäre schön, wenn wir mit diesen Informationen etwas anfangen könnten. Bevor wir das tun, müssen wir jedoch noch einige weitere Informationen geben. Näheres zum Aktualisieren von Metadaten (und dazu, wie sie sich vom Hinzufügen von Metadaten unterscheiden) sowie einige Nuancen, die Sie beim Umgang mit der API möglicherweise nicht erwarten.
Aktualisieren von Metadaten
Es gibt einen geringfügigen Unterschied zwischen dem Hinzufügen von Metadaten und dem Aktualisieren von Metadaten. Sie wissen, wie ein Schlüssel einen mit ihm verbundenen Wert eindeutig identifiziert? Nun, das ist teilweise genau.
Wenn Sie add_post_meta
aufrufen, erstellen Sie jedes Mal einen Eintrag, wenn Sie diesen Anruf tätigen. Wenn Sie also in unserem Code oben die Seite dreimal aktualisieren, wird Folgendes angezeigt:



Neugierig, richtig? Erinnern Sie sich daran, was der Kodex sagt:
Wenn der angegebene Schlüssel bereits in benutzerdefinierten Feldern des angegebenen Beitrags vorhanden ist, wird ein anderes benutzerdefiniertes Feld mit demselben Schlüssel hinzugefügt, sofern das Argument $ unique nicht auf true festgelegt ist. In diesem Fall werden keine Änderungen vorgenommen.
Ah, es gibt einen optionalen Parameter, den die Funktion akzeptiert. Es ist ein boolescher Name mit dem Namen $unique
und ermöglicht es uns, true
zu übergeben, wenn wir nur sicherstellen möchten, dass der hinzugefügte Wert einzigartig ist.
Möglicherweise möchten Sie Ihre vorhandenen Datensätze an dieser Stelle löschen. Wenn nicht, ist das in Ordnung - verwenden Sie einfach einen anderen Wert für den Schlüssel my_name
.
Dies bedeutet, dass wir unseren Code folgendermaßen aktualisieren könnten:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin', true ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Jetzt erstellen Sie nur einen einzelnen Eintrag. Wenn Sie außerdem versuchen, den Wert dieses Schlüssels im Code zu ändern, wird er nicht in der Datenbank überschrieben. Sobald die Post-Metadaten fertig geschrieben sind, werden sie wie beim ersten Mal gespeichert.
Aber es muss nicht so sein, und hier kommt update_post_meta
ins Spiel. Je nach Anwendungsfall kann update_post_meta
sogar mehr als add_post_meta
verwendet werden.
Bevor Sie sich den Code ansehen, lesen Sie, was der Codex zu sagen hat:
Die Funktion update_post_meta() aktualisiert den Wert eines vorhandenen Metaschlüssels (benutzerdefiniertes Feld) für den angegebenen Beitrag.Dies kann anstelle der Funktion add_post_meta () verwendet werden. Die erste Funktion dieser Funktion ist, sicherzustellen, dass $meta_key bereits auf $post_id vorhanden ist. Ist dies nicht der Fall, wird stattdessen add_post_meta ($ post_id, $ meta_key, $ meta_value) aufgerufen und das Ergebnis zurückgegeben.
Hast du das verstanden? Es kann "anstelle von add_post_meta
" verwendet werden.
- Wenn die Post-Metadaten für einen bestimmten Schlüssel bereits vorhanden sind,
- Wenn Sie
update_post_meta
verwenden, - Sie überschreiben den vorherigen Wert.
An dieser Stelle möchten Sie möglicherweise die Informationen in Ihrer Datenbank löschen oder ein neues Schlüssel- und Wertepaar erstellen. Dies bedeutet, dass wir unseren Code folgendermaßen aktualisieren können:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
update_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Dies bringt jedoch einige inhärente Gefahren mit sich.
Wenn Sie nämlich einen Wert überschreiben, den Sie nie überschreiben wollten, ist dieser Wert nicht mehr verfügbar und kann nicht zurückgefordert werden (es sei denn, Sie tun schickere Arbeiten, die außerhalb des Bereichs dieser Serie liegen).
Es gibt jedoch ein optionales abschließendes Argument für update_post_meta
. Dies ist das Argument $prev_value
. Sie können also angeben, welchen Wert Sie überschreiben möchten.
Nehmen Sie zum Beispiel den Fall, dass Sie mehrere Datensätze mit demselben Schlüssel mit add_post_meta
erstellt haben und nur einen dieser Datensätze aktualisieren möchten Um diese Daten zu aktualisieren, übergeben Sie den Wert, der diesem einen Datensatz entspricht.
Was ist der Unterschied?
Der Unterschied zwischen add_post_meta
und update_post_meta
kann als geringfügig angesehen werden, hängt jedoch von Ihrem Anwendungsfall ab.
Ich werde versuchen, sie so einfach wie möglich hier aufzuschlüsseln, denn obwohl es angesichts der Beispiele, die wir oben gesehen haben, kompliziert erscheinen mag, ist es einfacher, wenn Sie alles auslegen.
-
add_post_meta
ist nützlich, wenn Sie einen Datensatz in die Datenbank einfügen möchten. Wenn der Wert bereits vorhanden ist, kann der neue Wert geschrieben werden. Wenn Sie für den$unique
-Parameter der Funktion den Werttrue
übergeben, wird nur der erste Datensatz erstellt, und nichts außer dies überschreibtupdate_post_meta
. -
update_post_meta
kann anstelle vonadd_post_meta
verwendet werden und überschreibt immer den vorherigen Wert. Wenn Sie mit mehreren Datensätzen arbeiten, die mitadd_post_meta
erstellt wurden, müssen Sie möglicherweise einen vorherigen Wert angeben, den Sie überschreiben möchten.
Und das ist alles. Natürlich müssen wir die Datensätze immer noch aus der Datenbank abrufen und auf dem Bildschirm anzeigen.
Metadaten abrufen
Beim Abrufen von Post-Metadaten sind zwei wichtige Punkte zu beachten:
- Metadaten können als Zeichenfolge abgerufen werden.
- Metadaten können als Array abgerufen werden.
Manchmal hängt es davon ab, wie Sie die ursprünglichen Informationen gespeichert haben. Manchmal hängt es davon ab, wie Sie damit arbeiten wollen.
Bevor wir uns die verschiedenen Möglichkeiten zum Abrufen von Informationen ansehen, wollen wir uns zunächst den grundlegenden API-Aufruf ansehen. Im Einzelnen spreche ich von get_post_meta
. Wenn Sie bisher mitverfolgt haben, sollte das Verständnis der API relativ einfach sein.
Die Funktion akzeptiert drei Parameter:
- die ID des Beitrags
- der Metadatenschlüssel
- ein optionaler boolescher Wert, wenn Sie den Wert als String oder als Array abrufen möchten (wobei ein Array der Standardwert ist, wenn nichts angegeben ist)
Aus dem Kodex:
Post-Meta-Feld für einen Beitrag abrufen. Wird ein Array sein, wenn $single falsch ist. Ist der Wert des Metadatenfelds, wenn $single wahr ist.
Scheint leicht genug. Wenn also das letzte Bit unseres Quellcodes jetzt gerade liegt, können wir Informationen abrufen, indem wir einen Aufruf wie get_post_meta (get_the_ID (), 'my_name');
Der Code, wie er oben steht, gibt ein Array zurück.
Mehrere Werte
Wenn Sie den Ausdruck "mehrere Werte" hören, kann es hilfreich sein, sich ein Array oder eine Art Datenerfassung in der verwendeten Programmiersprache vorzustellen.
Denken Sie in unseren Beispielen daran, dass wir denselben Schlüssel mehrmals mit add_post_meta
gespeichert haben. Zur Auffrischung sah die Datenbank so aus:



Wenn ich die Informationen anhand ihres Schlüssels abrufen würde, was würde ich zurückbekommen? Da ich nicht angegeben hatte, dass ich einen String haben wollte, würde ich ein Array mit allen Datensätzen erhalten. Dies würde es mir erlauben, durch jeden von ihnen zu iterieren.
Andererseits sollte ich true angeben, um einen String zurückgeben zu wollen. Dann würde ich nur die erste Zeile erhalten, die mit add_post_meta
erstellt wurde.
Wenn Sie also mehrere Werte für einen bestimmten Schlüssel abrufen möchten, würde Ihr Code folgendermaßen aussehen:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
var_dump( get_post_meta( get_the_ID(), 'my_name' ) ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Beachten Sie, dass ich var_dump
verwende, um besser zu sehen, welche Informationen von WordPress im Browser zurückgegeben werden. Ich bin jedoch eher ein Fan von Debugger, was wir in einem zukünftigen Beitrag besprechen werden.
Einzelwerte
Angenommen, Sie möchten einzelne Werte für einen Beitrag speichern. In diesem Fall benötigen Sie noch die Post-ID und den Metadatenschlüssel. Sie müssen jedoch auch als dritten Parameter für get_post_meta
true
angeben.
Wenn Sie sich wie oben erwähnt mit einer Situation befassen, in der mehrere Zeilen mit add_post_meta
erstellt wurden, erhalten Sie die erste Zeile, die erstellt wurde. Wenn Sie diese Funktion jedoch neben update_post_meta
verwenden, erhalten Sie einen String-Wert der gespeicherten Daten zurück.
Da wir die erstere besprochen haben, aber die letztere nicht, ist der Code wie folgt:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
var_dump( get_post_meta( get_the_ID(), 'my_name', true ) ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Und dann erhalten Sie den Wert, den Sie als Metawert gespeichert haben, wenn Sie die Funktion aufrufen. Dies ist ziemlich einfach im Vergleich zu einem Satz Datensätze und Arrays, die ähnliche Informationen enthalten können.
Metadaten löschen
Der letzte Teil der Arbeit mit Post-Metadaten hat alles mit dem Löschen zu tun. Es ist einfach, aber es gibt nur ein paar Nuancen, die wir verstehen müssen, um sicherzustellen, dass wir dies effektiv tun.
Aber zunächst die Definition aus dem Kodex:
Diese Funktion löscht alle benutzerdefinierten Felder mit dem angegebenen Schlüssel oder Schlüssel und Wert aus dem angegebenen Beitrag.
Kurz, süß und auf den Punkt. Die Funktion akzeptiert drei Argumente:
- die ID des Beitrags
- der Metaschlüssel
- der Metawert
Der Meta-Wert ist optional, er ist jedoch praktisch, wenn Sie mit add_post_meta
gearbeitet haben und einen der Einträge löschen möchten, die durch mehrere Aufrufe dieser Funktion erstellt wurden (wie in diesem Lernprogramm an anderer Stelle beschrieben).
Obwohl ein Aufruf von delete_post_meta
so einfach ist wie das Übergeben einer Beitrags-ID, des Metaschlüssels und des optionalen Metawerts, gibt die Funktion einen booleschen Wert zurück, in dem angegeben wird, ob die Daten entfernt wurden.
Beispielcode zum Löschen einiger Post-Metadaten, die wir bisher angesehen haben, könnte folgendermaßen aussehen:
1 |
<?php
|
2 |
|
3 |
add_action( 'the_content', 'tutsplus_metadata' ); |
4 |
function tutsplus_metadata( $content ) { |
5 |
|
6 |
if ( 1 === get_the_ID() ) { |
7 |
delete_post_meta( get_the_ID(), 'my_name' ); |
8 |
}
|
9 |
|
10 |
return $content; |
11 |
|
12 |
}
|
Ihre Implementierung kann jedoch variieren. Wenn Sie mit mehreren Metadaten arbeiten und sicherstellen möchten, dass das Löschen erfolgreich war, können Sie den Code in eine Bedingung einschließen.
Ein letztes Beispiel für Code
Im Folgenden finden Sie ein langes, dokumentiertes Code-Snippet, das den Großteil dessen ausmachen soll, worüber wir in diesem Tutorial gesprochen haben. Beachten Sie, dass die Funktionen in the_content
hängen.
Dies dient nur zu Demonstrationszwecken, sodass Sie beim Auslösen einer bestimmten Seite das Auslösen dieser Funktionen problemlos auslösen können.
1 |
<?php
|
2 |
/**
|
3 |
* This file shows how to work with the common Post Meta API functions.
|
4 |
*
|
5 |
* Namely, it demonstrates how to use:
|
6 |
* - add_post_meta
|
7 |
* - update_post_meta
|
8 |
* - get_post_meta
|
9 |
* - delete_post_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 |
* http://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_action( 'the_content', 'tutsplus_add_post_meta' ); |
27 |
/**
|
28 |
* Determines if the current post is the default 'Hello World' post and, if so,
|
29 |
* adds my name as the post meta data to the postmeta database table.
|
30 |
*
|
31 |
* @param string $content The post content.
|
32 |
* @return string $content The post content.
|
33 |
*/
|
34 |
function tutsplus_add_post_meta( $content ) { |
35 |
|
36 |
if ( 1 === get_the_ID() ) { |
37 |
add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' ); |
38 |
}
|
39 |
|
40 |
return $content; |
41 |
|
42 |
}
|
43 |
|
44 |
add_action( 'the_content', 'tutsplus_update_post_meta' ); |
45 |
/**
|
46 |
* Determines if the current post is the default 'Hello World' post and, if so,
|
47 |
* updates my name as the post meta data to the postmeta database table. This
|
48 |
* is an alternative way of writing post metadata to the postmeta table as
|
49 |
* discussed in the linked tutorial.
|
50 |
*
|
51 |
* @param string $content The post content.
|
52 |
* @return string $content The post content.
|
53 |
*/
|
54 |
function tutsplus_update_post_meta( $content ) { |
55 |
|
56 |
if ( 1 === get_the_ID() ) { |
57 |
update_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' ); |
58 |
}
|
59 |
|
60 |
return $content; |
61 |
|
62 |
}
|
63 |
|
64 |
add_action( 'the_content', 'tutsplus_get_post_meta' ); |
65 |
/**
|
66 |
* Determines if the current post is the default 'Hello World' post and, if so,
|
67 |
* retrieves the value for the 'my_name' in the format of a string and echoes
|
68 |
* it back to the browser.
|
69 |
*
|
70 |
* @param string $content The post content.
|
71 |
* @return string $content The post content.
|
72 |
*/
|
73 |
function tutsplus_get_post_meta( $content ) { |
74 |
|
75 |
// Note: Don't worry about the esc_textarea call right now.
|
76 |
if ( 1 === get_the_ID() ) { |
77 |
echo esc_textarea( get_post_meta( get_the_ID(), 'my_name', true ) ); |
78 |
}
|
79 |
|
80 |
return $content; |
81 |
|
82 |
}
|
83 |
|
84 |
add_action( 'the_content', 'tutsplus_delete_post_meta' ); |
85 |
/**
|
86 |
* Determines if the current post is the default 'Hello World' post and, if so,
|
87 |
* deletes the post metadata identified by the unique key.
|
88 |
*
|
89 |
* @param string $content The post content.
|
90 |
* @return string $content The post content.
|
91 |
*/
|
92 |
function tutsplus_delete_post_meta( $content ) { |
93 |
|
94 |
if ( 1 === get_the_ID() ) { |
95 |
delete_post_meta( get_the_ID(), 'my_name' ); |
96 |
}
|
97 |
|
98 |
return $content; |
99 |
|
100 |
}
|
In der Regel finden Sie Metadatenfunktionen, die mit anderen Hooks verbunden sind, z. B. save_post
und ähnlichen Vorgängen. Dies ist jedoch ein Thema für fortgeschrittenere Arbeiten. Vielleicht werden wir später in diesem Jahr in einer anderen Serie darüber berichten.
Fazit
Jede einzelne der API-Funktionen ist im WordPress-Codex verfügbar. Wenn Sie also vor dem nächsten Artikel der Serie einen Schritt weitergehen und weitere Informationen lesen möchten, können Sie dies gerne tun.
Wie bereits erwähnt, ist dies eine Einführung in die WordPress Post Meta API. Durch die Informationen, die im Codex, in diesem Lernprogramm und im bereitgestellten Quellcode bereitgestellt werden, sollten Sie in der Lage sein, zusätzlichen Inhalt in die Datenbank zu schreiben, der sich auf jeden Ihrer Beiträge bezieht.
Denken Sie jedoch daran, dies ist zu Demonstrationszwecken gedacht, da wir mehr Informationen haben. Insbesondere müssen wir die Datenbereinigung und Datenvalidierung untersuchen. Obwohl wir zunächst weitere Themen behandeln müssen (z. B. Metadaten von Benutzern, Kommentar-Metadaten usw.), werden wir in Kürze mit fortgeschritteneren Themen fortfahren.
Letztendlich versuchen wir, eine Grundlage für zukünftige WordPress-Entwickler zu schaffen, um von dort aus weiterzuarbeiten und an Lösungen für andere, für ihre Agenturen oder sogar für ihre Projekte zu arbeiten.
Ich freue mich darauf, diese Serie fortzusetzen. Denken Sie daran, wenn Sie gerade erst anfangen, können Sie in meiner Serie erfahren, wie Sie mit WordPress anfangen können, das sich auf Themen konzentriert, die speziell für Anfänger von WordPress gedacht sind.
Wenn Sie nach anderen Dienstprogrammen suchen, die Sie dabei unterstützen, Ihre wachsenden Werkzeuge für WordPress aufzubauen oder um Code zu lernen und sich mit WordPress vertraut zu machen, sollten Sie nicht vergessen, was wir in Envato anbieten Markt.
Denken Sie daran, Sie können alle meine Kurse und Tutorials auf meiner Profilseite abrufen und Sie können mir auf meinem Blog und / oder Twitter unter @tommcfarlin folgen, wo ich über verschiedene Softwareentwicklungsmethoden spreche und wie wir sie in WordPress einsetzen können.
Bitte zögern Sie nicht, Fragen oder Kommentare in den untenstehenden Feed zu schreiben, und ich werde versuchen, auf jeden von ihnen zu antworten.