Um Benut­zer­de­fi­nierte 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 Benut­zer­de­fi­nierte Felder anhaken können. Ist dies geschehen, erscheint unter dem Editor-Feld eine Einga­be­maske für Benut­zer­de­fi­nierte Felder. Ein auf diese Weise angelegtes Feld, kann dann in allen Beiträgen / Seiten verwendet werden.

Anschließend müssen diese im Theme auch darge­stellt 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 benut­zer­de­fi­nierten Feldes ms_fsk des aktuellen Beitrages ausge­lesen. Den aktuellen Beitrag holt sich WordPress durch get_the_ID(). Durch true wird definiert, dass der erste Wert des benut­zer­de­fi­nierten Feldes ausge­geben wird.

Loop Ausgabe beein­flussen

Soll nun die Ausgabe des Loops durch die benut­zer­de­fi­nierten Felder beein­flusst 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 benut­zer­de­fi­niertes 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
    ),
),