Benutzerdefinierte Felder in WordPress nutzen
Benutzerdefinierte Felder in Wordpress sind ein mächtiges Tool, mit dem man seine Blogbeiträge um Metainformationen anreichern kann. Wie du sie einrichtest und was du damit machen kannst, erklärt dieser Artikel.
Anwendungsbeispiele
Benutzerdefinierte Felder sind in WordPress zusätzliche Felder, die du sowohl für Artikel als auch Seiten verwenden kannst. Du kannst dabei selbst bestimmen, wie diese Felder heißen sollen und wie du sie verwenden möchtest. Benutzerdefinierte Felder kann man beispielsweise für folgende zusätzliche Informationen nutzen:
- Eine Meta Descriptions zum Artikel
- Bei Rezensionen: bibliografische Angaben oder Angaben zum Produkt
Aktivierung benutzerdefinierter Felder
Die benutzerdefinierten Felder sind schon von Anfang an da, im Artikeleditor aber gut versteckt.
Aktivierung im Classic Editor
Im klassischen Editor rufst du zur Aktivierung eine Artikelseite auf. Oben rechts kannst du über Ansicht anpassen ein Menü aufrufen und dort die benutzerdefinierten Felder aktivieren. Sie erscheinen nun unterhalb des Content-Editors und du kannst sie an beliebiger Stelle positionieren.

Aktivierung im Gutenberg Editor
Beim Gutenberg Editor ist der Weg zu den benutzerdefinierten Feldern noch besser versteckt. Sie heißen hier „eigenen Felder“.


Ausgabe von benutzerdefinierten Feldern
Ein benutzerdefiniertes Feld, das du beispielsweise meta genannt hast, kann auf folgende Arten im Template ausgegeben werden:
<?php echo get_post_meta($post->ID, 'meta', true); ?>
Möchtest du das Feld nur ausgeben, wenn es auch tatsächlich ausgefüllt ist, kannst du folgenden Abfrage verwenden:
<?php if ( get_post_meta($post->ID, 'meta', true) ) { echo "Metaangaben: "; echo get_post_meta($post->ID, 'meta', true); } ?>
Das ist zum Beispiel praktisch, wenn du verbunden mit dem Feld noch weitere Informationen ausspielen möchtest. In diesem Beispiel stellen wir den Metaangaben noch den Hinweis „Metaangaben“, voran. Gibt es keine Metaangaben, dann wird auch dieses vorangestellt Wort weggelassen.
Ähnlich kannst du das Metadatenfeld auch nutzen, um dein Template zu modifizieren. Hast du beispielsweise ein das Feld hinweis mit ja oder nein befüllt, kannst du dir, je nachdem, was der Fall ist, unterschiedliches HTML ausgeben lassen.
<?php if ( get_post_meta($post->ID, 'hinweis', true) == 'ja') { // TU DIES } elseif ( get_post_meta($post->ID, 'hinweis', true) == 'nein') { // TU DAS } ?>
Individuelle Abfragen mit benutzerdefinierten Feldern
In Queries – also Abfragen, die eine Liste an WordPress-Artikel zusammenstellen – kannst du benutzerdefinierte Felder zur Filterung und Sortierung verwenden.
Sortierung
<?php $myQuery = new WP_Query( array( 'order' => 'ASC', 'orderby' => 'myOrdner', 'meta_query' => array( 'month' => array( 'key' => 'reihenfolge', 'type' => 'NUMERIC' ) ) )); while ($myQuery->have_posts()) : $myQuery->the_post(); ?> // Hier werden Informationen zum Artikel ausgegeben <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php endwhile; wp_reset_query(); ?>
Zur Vollständigkeit siehst du hier die komplette Abfrage, wichtig sind aber nur die markierten Zeilen 7 bis 9. Bei key trägst du das Metadatenfeld ein, nachdem sortiert werden soll, in diesem Beispiel wäre es das Feld mit der Benennung „reihenfolge“. Da es bei mir in dem Beispiel ein Feld ist, das nur Zahlen enthält, gebe ich als Typ außerdem NUMERIC mit. Über order in Zeile 4 bestimmst du, ob die Reihenfolge absteigend (DESC, also von 100 bis 1) oder aufsteigend (ASC, also von 1 bis 100) sein soll.
Filterung
Möchtest du in einen Query beispielsweise nur Artikel einfließen lassen, bei denen im benutzerdefinierten Feld ein ganz bestimmter Wert steht, geht das mit diesem Code:
<?php $myQuery = new WP_Query( array( 'meta_key' => 'meta', 'meta_value' => 'Schildkröte' )); while ($myQuery->have_posts()) : $myQuery->the_post(); ?> // Hier werden Informationen zum Artikel ausgegeben <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php endwhile; wp_reset_query(); ?>
Als meta_key trägst du den Namen des benutzerdefinierten Feldes ein. Der meta_value ist der Wert, nach dem gefiltert wird. In diesem Fall werden nur die Artikel ausgegeben, bei denen der Wert „Schildkröte“ ist.
Wichtig: Wenn du nach einem benutzerdefinierten Feld filterst, muss dieses auch bei allen Artikeln in Verwendung sein. Ein Artikel, bei dem dieses Feld nicht ausgefüllt ist, taucht nicht in der Abfrage auf!