Custom Fields (mit ACF)

Hinweis: Dieser Artikel ist älter als zwei Jahre (letzte Änderung: 14. März 2013) und evtl. nicht mehr aktuell.

Heute wollen wir uns mal um das Thema Custom Fields (Benutzerdefinierte Felder) kümmern.
Mit den Custom Fields lassen sich, wie der Name schon sagt, zu jedem Beitrag / jeder Seite viele zusätzliche benutzerdefinierte Felder anlegen mit verschiedensten Inhalten/Metadaten.
Wir wollen das mal anhand eines Beispieles zeigen: Termine! Dazu wird lediglich ein Benutzerdefiniertes Feld mit dem Namen „datum“ und einem Wert angelegt:
custom fields "datum"
Weitere Felder könnten sein: ort, uhrzeit

Um jetzt die Benutzerdefinierten Felder im Frontend anzeigen zu lassen müssen wir unsere Templates im Loop mit folgender Funktion ergänzen

<?php get_post_meta($post_id, '$key', $single); ?>

(http://codex.wordpress.org/Function_Reference/get_post_meta)

In unserem Fall sähe es dann so oder ähnlich aus

<div class="termine">
<p class="datum">Datum: <?php echo get_post_meta($post->ID, 'datum', true) ?></p>
<p class="ort">Ort: <?php echo get_post_meta($post->ID, 'ort', true) ?></p>
<p class="uhrzeit">Uhrzeit: <?php echo get_post_meta($post->ID, 'uhrzeit', true) ?></p>
</div>

Außerhalb des Loops säh es etwas anders aus

<?php global $wp_query; ?>
<div class="termine">
<p class="datum">Datum: <?php echo get_post_meta($wp_query->post->ID, 'datum', true) ?></p>
<p class="ort">Ort: <?php echo get_post_meta($wp_query->post->ID, 'ort', true) ?></p>
<p class="uhrzeit">Uhrzeit: <?php echo get_post_meta($wp_query->post->ID, 'uhrzeit', true) ?></p>
</div>

Natürlich könnte man meinen, warum diese Angaben nicht immer direkt in den Beitrag schreiben?
Klar wäre möglich … aber das schöne an den Custom Fields ist, dass man diese durch das setzen der o.g. Funktion ins Template immer an gleicher Position mit den gleichen Formatierungen anzeigen lassen kann.
Ein weiterer Vorteil ist, es lassen sich z.B. nur die Artikel mit einem bestimmten Custom Field anzeigen, in unserem Fall dann eine schöne Termin-Übersicht

<?php query_posts('meta_key=datum&orderby=meta_value_num&order=DESC'); ?>

(https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters)

Um das ganze etwas übersichtlicher verwalten und anzeigen zu lassen, gibt es natürlich auch Plugins. Hier hebt sich für uns besonders das Plugin Advanced Custom Fields (ACF) hervor. Mit ACF kann man in kürzester Zeit Custom Fields anlegen und diese den verschiedenen Post Types zuordnen, dabei ist es egal ob das Custom Field ein Textfeld, eine Checkbox, Radio-Button oder sogar ein Datum (mit Datepicker) ist. Es gibt zahlreiche Möglichkeiten.

Advanced Custom FieldsUm mit ACF Custom Fields anlegen zu können, benötigt man als erstes eine Felder-Gruppe. Wir zeigen dies wieder anhand der Gruppe „Termine“. Ist diese Gruppe angelegt, kann man verschiedene Felder hinzufügen (+ Feld hinzufügen), in unserem Bsp. wieder Datum, Uhrzeit und Ort. Hier bestimmt man Bezeichnung und Feldtyp sowie ob das Feld ein Pflichtfeld (erforderlich) ist. Der Name ergibt sich aus der Bezeichnung und ist für das spätere Anzeigen im Template sehr wichtig.

Desweiteren bestimmt man in der Felder-Gruppe Regeln, auf welchen Bearbeitungs-Seiten diese benutzerdefinierten Felder angezeigt werden sollen und an welcher Position. Wir mögen die Custom Fields gerne an seitlicher Position im Backend, aber das ist Geschmackssache. Jetzt nur noch „Veröffentlichen“.

Um nun die einzelnen Felder, z. B. Datum, in einem Template anzeigen zu lassen, baut man, abweichend von der o.g. WordPress-Funktion, folgenden Code ein:

<?php the_field('datum'); ?>

In euren Beiträgen könnt ihr die neu angelegten Felder nun ausfüllen und diese dann wie gewohnt durch den Speichern oder Veröffentlichen/Aktualisieren Button, abspeichern.

Natürlich kann man, falls man nicht im Template arbeiten will, auch Shortcodes in Beiträgen nutzen. Anhand unseres Beispiels sähe dieser so aus:

[acf field="datum"]

Natürlich gibt es noch viele viele Spielerei-Möglichkeiten. Eine sinnvolle Ergänzung zu den Custom Fields sind z.B. die Custom Post Types … aber dazu kommen wir sicherlich irgendwann in einem späteren Artikel.

Empfehle uns: email facebook google plus twitter

Artikel Informationen

  • Erstellt am Donnerstag, 14. März 2013 um 08:44 und abgelegt unter WordPress mit den Tags: ,
  • Kommentare zu diesen Eintrag im Kommentar Feed Feed.
  • Du kannst einen Kommentar hinterlassen. Pingback ist im Augenblick nicht erlaubt.

Hinterlasse einen Kommentar

  Abonnieren  
Benachrichtige mich zu: