WordPress-Metadaten beherrschen Mit Schleifen arbeiten

In den ersten beiden Teilen dieser Serie wurde beschrieben, welche Metadaten in WordPress enthalten sind und wie mit den normalerweise zurückgegebenen Arrays gearbeitet wird. Nun, da Sie gelernt haben, die Detektivarbeit durchzuführen, die notwendig ist, um die Struktur eines Arrays zu finden, ist es an der Zeit, Loops zu verwenden, um den Prozess der Ausgabe eines Arrays zu automatisieren.

Sobald Sie diese wichtige Fähigkeit gelernt haben, müssen Sie sich nie wieder wiederholtes HTML-Markup schreiben.

Verwenden von Foreach-Loops für Arrays

Die Standard-WordPress-Schleife ist a während Schleife, wie in "Wenn es Elemente gibt, die wiederholt werden sollen, setzen Sie die Schleife fort." Wenn Sie mit Metadaten arbeiten, ist es oft einfacher, mit a zu arbeiten für jeden Schleife.

Diese Schleifen ermöglichen es uns, unser PHP so zu schreiben, als würden wir mit einem einzigen Array arbeiten, und dann für jedes Element jedes Element aus einem mehrdimensionalen Array über dieselbe Schleife ausgeben.
Zuvor haben wir uns dieses Array angeschaut:

 $ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Unwahrscheinlich Held'), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo') , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),);

Wenn wir dieses Array lesbar machen wollten, würden wir mit der richtigen Markierung ein für jeden Schleife.

Wir richten uns normalerweise ein für jeden Schleifen mit Plural- und Singularformen der Variablen, d.h.., foreach ($ helden als $ hero) und von dort aus können wir die einzelne Variable verwenden, um jedes Element im Array darzustellen.

Wir können dann unser mehrdimensionales Array als ein einzelnes Array behandeln.

 $ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Unwahrscheinlich Held'), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo') , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),); Echo '
    '; foreach ($ helden als $ hero) echo '
  • Vollständiger Name: '. $ Hero [' vollständiger_name '].'
  • '; // Ende des foreach-Schleifenechos '
';

Dies ist ein abstraktes Beispiel, aber ich bin sicher, dass Sie die Macht sehen können. Statt das gleiche Markup dreimal neu zu schreiben (und aktualisieren zu müssen), schreiben Sie es einfach nur einmal und lassen es von PHP dreimal durchlaufen.

Diese sechs einfachen Codezeilen könnten genauso gut fünfzig Einträge verarbeiten wie fünf, was die Leistungsfähigkeit von foreach-Schleifen zum Schreiben von einfach zu handhabendem, skalierbarem Code zeigt.

In diesem nächsten Beispiel nehmen wir ein Array von Post-IDs und geben bei foreach post den Namen eines Felds zurück youtube_name als Link, der in der gesetzt ist youtube_link Feld. Diese sechs einfachen Codezeilen könnten genauso gut fünfzig Pfosten behandeln wie fünf, die uns die Macht von zeigen für jeden Schleifen zum Schreiben leicht zu handhabender, skalierbarer Code.

 $ posts = Array (5, 8, 13, 21, 34); foreach ($ posts als $ post) $ link = get_post_meta ($ post, 'youtube_link', 'single'); $ name = get_post_meta ($ post, 'youtube_name', 'single'); echo ''. $ name. '';  // foreacheschleife beenden

Verwenden von get_post_meta () in der Haupt-WordPress-Schleife

Bisher habe ich Post-IDs manuell angegeben, aber wenn Sie in der WordPress-Hauptschleife verwendet werden, können wir die ID festlegen get_post_meta () manuell mit get_the_ID (). Wenn wir also dieselben benutzerdefinierten Felder wie im letzten Beispiel verwenden, sie aber als Teil der Hauptschleife anzeigen, wenn wir das Youtube-Video unter den Post-Inhalt einfügen möchten, können wir es einfach hinzufügen, der Inhalt(); etwas wie das:

 $ link = get_post_meta (get_the_ID (), 'youtube_link', 'single'); $ name = get_post_meta (get_the_ID (), 'youttube_name', 'single'); Echo ''. $ name '';

Kombinieren von a während und für jeden Schleife

Häufig haben wir ein benutzerdefiniertes Feld, das ein Array von serialisierten Daten für verwandte Informationen enthält. Beispielsweise kann ein Feld den Titel, den Mimetyp, die URL und die Beschreibung eines Videos enthalten.

Serialisierter Speicher ist besonders nützlich, wenn einem Feld mehrere Elemente hinzugefügt werden können. Das Arbeiten mit diesen Zeiten von Feldern kann in den wichtigsten WordPress-Schleifen schwierig sein. Der einfachste Weg, um mit ihnen umzugehen, ist eine sekundäre Schleife in Ihrer Hauptschleife.

In diesem Beispiel habe ich eine Standard-WordPress-Nachschleife hinzugefügt, die eine ist während Schleife, eine zweite Schleife, die jedes Videofeld durchläuft, um einen HTML5-Videoplayer zu erstellen für jeden Video.

Es spielt keine Rolle, ob es ein oder zehn Videos gibt. Mit diesen wenigen einfachen Codezeilen wird für jeden ein Player erstellt.

 if (have_posts () while (have_posts ()) the_post (); the_content (); $ videos = get_post_meta (get_the_ID (), 'videos', false); foreach ($ videos als $ video) ?> 

Fast dort

Mit dieser Serie haben wir uns bisher mit den Metadaten in WordPress beschäftigt und dieses Wissen dazu verwendet, um PHP-Arrays und -Schleifen kennenzulernen. Wir haben auch einige praktische Beispiele zur Verwendung dieser Daten oder Datenarrays in der Schleife betrachtet.

Dies ist der erste Schritt zum Erlernen der Verwendung von WordPress als Content-Management-System. Im nächsten Schritt erfahren Sie, wie Sie die Datenbank mit Hilfe von Metafeldern abfragen können.