DH
David Hellmann
2009/01/06

WordPress Custom Fields, fantastisch!

WordPress Custom Fields sind wirklich fantastisch! Hat man mit ihnen doch eine ganze andere Möglichkeit Projekte umzusetzen. Es verleiht dem ganzen die nötige Flexibiltät die man sich wünscht. Werte die in den Custom Fields gespeichert werden kann man nahezu überall ohne größere Probleme ausgeben lassen. Wie das ganze funktoniert will ich anhand meines Portfolio Bereichs näher erläutern. Dieser wird komplett mit Custom Fields umgesetzt, das eigentliche Eingabefeld bleibt leer.

Was sind diese Custom Fields überhaupt

Das sind einfache Eingabefelder die man einer Seite oder einem Artikel anhängen kann. Quasi Metainformationen zum Artikel. Das Prinzip ist denkbar einfach. Es gibt einen Schlüssel und diesem wird ein Wert zugewiesen. Ein einfaches Beispiel wäre dann also: Kunde > Kundenname. Der Schlüssel Kunde bekommt den Wert Kundenname. Zu finden ist das ganze unter dem normalen Eingabefeld und heisst entweder "Custom Fields" oder "Benutzerdefinierte Felder".

Bevor man anfängt…

…sollte man sich Gedanken über den Aufbau machen damit man nicht wie ich zehn mal neu anfängt bzw. im Nachhinein dann viel ändern muss. Welche Werte möchte man später ausgeben lassen? Macht es Sinn das ein oder andere zusammenzufassen oder doch lieber für jedes ein einzelnes Custom Field anlegen. Bei mir war das speziell der Fall bei: "Umfang"... Sollte ich jetzt für jede Art der Arbeit ein eigenes Custom Field anlegen oder reicht es wenn ich das unter einem zusammenfasse? Mehr Möglichkeiten bieten sich auf jedenfall wenn man es einzeln macht. Hier muss man wie schon angesprochen einfach schauen was für einen die bessere Lösung ist.

So werden die Custom Fields ausgegeben

Schauen wir uns erst einmal an wie das ganze ausgegeben wird. Ich nehm hier das Beispiel wie ich es in meinem Portfolio verwendet habe. Ich lege mittels Custom Field den Ordner fest worum es sich handel (Web, Print, Apparel) und dann lege iich noch den Bildnamen fest. Mehr nicht, der Rest wird im Loop gemacht.

      
        <!-- Wordpress Loop -->
<?php if (have_posts()): ?>
<?php while (have_posts()) : the_post(); ?>;
 
<!-- Hier kommt der Inhalt hin -->
<!-- Den Inhalt der Felder speichern wir in Variablen -->
 
<?php $ordner = get_post_meta(&post->ID, 'ordner', true); ?>
<?php $img01 = get_post_meta(&post->ID, 'img01', true); ?>
 
<!-- $ordner und $img01 sind die Variablennamen in diesen der Inhalt 
gespeichert wird. das 'ordner' und 'img01' sind die Custom Field Namen 
die wir später im Beitrag mit Inhalt füllen werden im nächsten Schritt 
Fragen wir ab ob der Inhalt des NICHT Leer ist und wenn das der Fall ist 
dann soll er etwas ausgeben -->;
 
<?php if($img01 !== '') { ?>
<p class="bild"><img src)"<?php bloginfo('home'); ?>/
wp-content/uploads/portfolio/<?php $ordner; ?>/<?php echo $img01; ?>.jpg" 
alt="<?php the_title(); ?>" /></p>
<?php } ?>
 
<!-- Jetzt wird, falls das Custom Field "img01" ausgefüllt ist, 
ein Bild angezeigt. Das Custom Field "ordner" sollte natürlich 
auch richtig ausgefüllt sein damit der Pfad zum Bild später stimmt. 
Jetzt muss nur noch der Loop geschlossen werden und das ganze ist fertig. 
Natürlich kann man das ganze noch mit anderen Sachen ergänzen 
aber da soll hier nicht näher drauf eingegangen werden. -->;
 
<?php endwhile; else: ?>
<p>Falls keine Artikel vorhanden...</p>
<?php endif; ?>
      
    

So werden Custom Fields hinzugefügt

Custom Fields werden ganz einfach hinzugefügt. Das funktioniert bei Artikeln und auch bei Seiten. Man scrollt einfach wenn man einen Beitrag schreibt nach unten zur Box "Custom Fields" oder wer die deutsche Version hat: "Benutzerdefinierte Felder". Dort schreibt man bei Name einfach den gewünschen Feldname rein. Sollte man schon mal einen Beitrag verfasst haben und Custom Fields genutzt haben kann man hier auch per Drop Down Namen auswählen. Wenn man sich für einen Namen entschieden hat bekommt dieser einen Wert. In unserem Beispiel ist das "img01" als Name und "Bildname" der Wert. Ist alles richtig klickt man auf hinzufügen und das Custom Field wurde gespeichert. Man kann so viele anlegen wie man möchte bzw. so viele wie man benötigt. Man sollte sich vorher gedanken machen was wirklich gebraucht wird.

Ein vorhandenes Custom Field kann natürlich auch bearbeitet werden. Dazu geht ihr einfach in den Beitrag wo etwas bearbeitet werden soll und scrollt wieder zur Box mit den Custom Fields. Dort seht ihr dann die schon gespeicherten und könnt diese einfach ändern und klickt anschließend auf aktualisieren.

Plugins um das ganze etwas einfacher zu machen

Ich nutze das Plugin "More-Fields" was mir die Arbeit deutlich vereinfacht. Es soll hier keine Beschreibung des Plugins werden. Soviel sei aber gesagt. Man kann damit schön Sets erstellen für Custom Fields welche man dann beim schreiben einfach mit ausfüllen kann. Problem gibt es hier nur mit den WordPress Post Revisions die abgeschaltet werden müssen sonst schreibt er bei jedem Speichern die Custom Fields doppelt. Das ganze macht man einfach indem man eine kleine Zeile in die config.php schreibt:

define('WP_POST_REVISIONS', False);

Sollte es Fragen geben dann fleißig in den Kommentaren posten.

comments powered by Disqus

Maybe interesting…

UP