Um Benutzerdefinierte Felder nutzen zu können, müssen diese natürlich zuerst angelegt werden. Dazu gibt es im Editor oben rechts ein Pull-Down Fenster, in welchem wir Benutzerdefinierte Felder anhaken können. Ist dies geschehen, erscheint unter dem Editor-Feld eine Eingabemaske für Benutzerdefinierte Felder. Ein auf diese Weise angelegtes Feld, kann dann in allen Beiträgen / Seiten verwendet werden.
Anschließend müssen diese im Theme auch dargestellt werden. Dazu wird der Template tag get_post_meta() verwendet.
<!-- Benutzerdefiniertes Feld -->
<?php
$ms_fsk = get_post_meta( get_the_ID(), 'ms_fsk', true ); //Variable $ms_fsk wird erstellt und gefüllt
if ( ! empty( $ms_fsk )) { //fragt ab ob die Variable gefüllt ist.
echo '<p class="fsk">Geeignet ab ' . $ms_fsk . ' Jahren.</p>'; //Wenn ja wird die Variable ausgegeben.
}
?>
Es wird eine Variable namens $ms_fsk erstellt. In dieser wird der Inhalt anhand get_post_meta des benutzerdefinierten Feldes ms_fsk des aktuellen Beitrages ausgelesen. Den aktuellen Beitrag holt sich WordPress durch get_the_ID(). Durch true wird definiert, dass der erste Wert des benutzerdefinierten Feldes ausgegeben wird.
Loop Ausgabe beeinflussen
Soll nun die Ausgabe des Loops durch die benutzerdefinierten Felder beeinflusst werden, werden sogenannte Meta_Queries benötigt.
Loop nach Feldwert filtern
sollen z.B. nur Beiträge angezeigt werden wo der Wert des Feldes ms_fsk = 16 ist, so müsste folgender Schnipsel innerhalb des $args array des Loops platziert werden.
'meta_query' => array( //Öffnet Meta_Query array
array(
'key' => 'ms_fsk', //wählt Feld aus, wonach gefiltert werden soll
'value' => '16', //wählt Wert des Feldes aus
),
),
Loop nach Feldwerten sortieren
sollen Beiträge z.B. nach einem Datum sortiert werden, welches ein benutzerdefiniertes Feld ist, so könnte der Codeschnipsel, der im $args array des Loops platziert werden muss, so aussehen.
'orderby' => 'meta_value', //legt fest, dass nach dem meta value sortiert werden soll
'order' => 'ASC', //legt die Reihenfolge fest, ASC oder DESC
'meta_query' => array ( //öffnet Meta_Query array
array(
'key' => 'ms_filmstart', //wählt Feld aus, nach welchem sortiert werden soll
'value' => getdate(), //liest den Wert des Feldes aus in diesem Fall ein Datum
'compare' => '>' //Vergleicht die ermittelten Werte
),
),