Wiederverwendbare benutzerdefinierte Meta-Boxen Teil 4 Verwenden der Daten

In Teil 1, Teil 2 und Teil 3 unserer Tutorial-Serie für benutzerdefinierte Meta-Box-Vorlagen haben wir gelernt, wie man eine wiederverwendbare Meta-Box erstellt, die alle Feldinformationen aus einem leicht lesbaren, einfach zu duplizierenden Array abruft. Viele der Daten können einfach verwendet werden, indem einfach das Meta-Feld in Ihrer Vorlage oder durch eine Funktion wiederholt wird. Einige Felder sind jedoch komplexer und erfordern bei der richtigen Verwendung etwas mehr Finesse. In diesem Lernprogramm erhalten Sie eine grundlegende Vorstellung davon, wie Sie diese Daten verwenden, und Sie können sie auf unzählige Arten erklären.


Daten abrufen

WordPress bietet mehrere Möglichkeiten, Post-Metadaten abzurufen.

Alle Daten auf einmal ausgeben

Der einfachste Weg, die Daten anzuzeigen, ist mit the_meta () Funktion. Sie können dies direkt in Ihre single.php Vorlage, aber es wird Ihnen nicht die Ergebnisse liefern, nach denen Sie wahrscheinlich gesucht haben. Dies ist eine sehr wörtliche Ausgabe der Daten in einer ungeordneten Liste, der der Schlüssel jedes Feldes vorangestellt ist, wie in der Abbildung gezeigt.

Holen Sie sich ein einzelnes Feld

Die gebräuchlichste Methode, um Daten in einem Post-Meta-Feld zu speichern, ist mit der get_post_meta () Funktion. Dies ist eine einfache Methode, um ein bestimmtes Feld als Ziel festzulegen und in einer Variablen zu speichern, die später verwendet werden kann.

 $ custom_text = get_post_meta ($ post-> ID, 'custom_text', true);

Wenn Sie diesen Code innerhalb der einzelnen Nachschleife verwenden, wird der Text "Einiger Text in einer grundlegenden Texteingabe" in die Variable eingefügt $ custom_text Das könnte dann Echo oder gefiltert werden oder was auch immer Sie mit dem String machen möchten. Wenn Sie nur mit ein paar Feldern zu tun haben, ist dies wahrscheinlich der Weg, aber in unserem Beispiel arbeiten wir mit 11 verschiedenen Feldern. Wenn Sie alle einzeln mit dieser Funktion aufrufen, wird Ihr Code unnötig aufgebläht, da alle Daten auf einmal abgerufen werden können.

Holen Sie sich alle Daten auf einmal

Meine Lieblingsmethode, wenn ich mit so vielen Feldern arbeite, ist die Verwendung von get_post_custom () Funktion. Mit dieser Funktion können wir alle benutzerdefinierten Post-Meta-Felder in einem Array speichern und dann die gewünschten Daten mit dem Array-Schlüssel abrufen.

$ post_meta_data = get_post_custom ($ post-> ID); gibt uns ein Array, das so aussieht:

 Array ([custom_text] => Array ([0] => Ein Teil des Textes in einer grundlegenden Texteingabe) [custom_textarea] => Array ([0] => Ein oder zwei Absätze aus einem Textbereich. Lorem ipsum dolor sitzen amet, consectetur adipiscing elite Donec tristique quam mi. Sed eget ligula sitzt vor einem dapibus tristique Mauris vel enim mauris, vitae mattis tortor. Anwesend bei der Adipiscing-Massa. Fusce quis eros vel sem pharetra follat ​​imperdiet ut est.) 0] => ein) [custom_select] => Array ([0] => one) [custom_radio] => Array ([0] => two) [custom_checkbox_group] => Array ([0] => a: 2: i: 0; s: 3: "eins"; i: 1; s: 5: "drei";) [custom_post_id] => Array ([0] => 109) [custom_date] => Array ([0 ] => 25.05.2012) [custom_slider] => Array ([0] => 15) [custom_image] => Array ([0] => 413) [custom_repeatable] => Array ([0] => a : 3: i: 0; s: 22: "Text aus einem Wiederholbaren"; i: 1; s: 27: "Mehr Text aus einem Wiederholbaren"; I: 2; s: 33: "Wiederholbare Textfelder sind großartig! ";))

Wie Sie in diesem Array sehen können, speichert WordPress jedes Feld als Array, da für dasselbe Feld mehrere Werte verwendet werden können. Sie werden wahrscheinlich auch feststellen, dass einige Felder serialisiert sind. Lassen Sie uns näher auf den Umgang mit den Daten aus jedem Feld eingehen und überlegen, wie dies behoben werden kann.


Einfache Eingabefelder

Die Text- und Textbereiche sind ziemlich einfach zu behandeln. Sie können sie mit einem der folgenden Beispiele wiederholen:

 echo $ post_meta_data ['custom_text'] [0]; echo apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; if ($ custom_checkbox == 'on') do_stuff (); 

In der ersten Zeile wird der String einfach so ausgegeben, wie er ist, und in der zweiten Zeile werden die Zeilenumbrüche mit WordPress in Absätze umgewandelt. der Inhalt Filter. Sie können die gleichen Methoden auch für Auswahl-, Radio-, Datums- und Schiebereglerfelder verwenden.

Die letzte Zeile zeigt, wie Sie testen können, ob ein Kontrollkästchen ausgewählt wurde oder nicht. Wenn ja, können Sie verschiedene Funktionen oder eine beliebige Anzahl von Dingen ausführen.


Serialisierte Daten

Unsere Kontrollkästchen-Gruppenfelder und wiederholbaren Felder speichern Arrays, die in der Datenbank serialisiert werden. Bevor wir diese Daten ausgeben können, müssen wir sie desialisieren.

 $ custom_checkbox_group = unserialize ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = unserialize ($ post_meta_data ['custom_repeatable'] [0]);

Das unserialize () function ist eine grundlegende PHP-Funktion, die unsere Daten in ein Array konvertiert, das einfacher zu verwenden ist. Der obige Code gibt mir zwei Arrays, die folgendermaßen aussehen:

 Array ([0] => one [1] => three) Array ([0] => Text aus einem wiederholbaren [1] => mehr Text aus einem wiederholbaren [2] => Wiederholbare Textfelder sind großartig!)

Jetzt kann ich die Arrays durchlaufen, aber ich möchte sie in meiner Ausgabe verwenden. Beachten Sie, dass im wiederholbaren Feld die Schlüssel im Array automatisch in der Reihenfolge 0, 1, 2, 3 gespeichert werden, wenn Sie es auch in Teil 3 unseres Tutorials für benutzerdefinierte Meta-Box-Vorlagen sortierbar machen usw. und nicht in der Reihenfolge, in der sie ursprünglich eingegeben wurden, bevor sie sortiert wurden.

 Echo '
    '; foreach ($ custom_repeatable als $ string) echo '& ltli>'. $ string. ''; Echo '
';

In diesem Beispiel wird eine ungeordnete Liste aller in der Zeichenfolge gespeicherten Zeichenfolgen ausgegeben $ custom_repeatable Array.


Spezialisierte Daten

Für unsere Felder "Postliste" und "Bild" haben wir eine ID gespeichert. Es gibt einige sehr seltene Fälle, in denen Sie nur die ID ausgeben möchten, aber höchstwahrscheinlich möchten Sie die ID verwenden, um weitere Informationen zu erhalten.

 $ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; echo '' .get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; echo wp_get_attachment_image ($ custom_image, 'thumbnail');

Fazit

Dieses Tutorial zeigt die grundlegendsten Möglichkeiten, wie Sie die Daten verwenden können, die wir mit unseren wiederverwendbaren benutzerdefinierten Meta-Boxen gespeichert haben. Die Möglichkeit, zusätzliche Daten zu speichern und in Themes und Plugins zu verwenden, eröffnet mit WordPress eine völlig neue Welt voller Möglichkeiten. Wofür wirst du es verwenden??