Webentwicklung & Datenanalyse

Benutzerdefinierte Felder in WordPress nutzen

Lesezeit: 3 Minuten

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.

Benutzerdefinierte Felder im klassischen Editor aktivieren
Benutzerdefinierte Felder im klassischen Editor sichtbar machen Bild Vergrößern

Aktivierung im Gutenberg Editor

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

Benutzerdefinierte Felder im Gutenberg Editor aktivieren
Über die drei Punkte rechts oben öffnet sich ein Menü, über das du ganz unten zu den benutzerdefinierten Feldern gelangst… Bild Vergrößern
Benutzerdefinierte Felder im Gutenberg Editor aktivieren
… jetzt müssen nur noch die eigenen Felder angehakt werden und die bekannte Eingabemaske erscheint unterhalb des Gutenberg Inhalts-Editors Bild Vergrößern

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!

Profilbild
Autorin: Friederike

Hallo, ich bin Friederike. Ich entwickle Websites und schreibe auf krempin.it darüber. Außerdem mag ich Japanische Literatur und Retro-Videospiele.