Custom Fields dienen in WordPress dazu, eigene Eingabefelder zu erstellen. Dies kann zum Beispiel nützlich sein, wenn man seinen normalen Fließtext von anderen Inhalten trennen möchte. Ich persönlich bin ein Fan von getrennten Inhalten, da ich dann jeden Inhalt individuell gestalten kann. Außerdem liegt so die Kontrolle bei mir und nicht beim System.

Artikel um Custom Fields ergänzen

Ein Custom Field in WordPress anzulegen ist absolut kein Hexenwerk. Dazu geht ihr einfach in einen eurer Artikel und sucht dort nach dem Menü Benutzerdefinierte Felder. Falls ihr diese in der Eingabemaske deaktiviert habt, müsst ihr sie natürlich erst wieder über die Optionen einblenden.

Ein neues Feld legt ihr einfach über die Schaltfläche Neu eingeben an. Dabei besteht ein Feld immer aus einem Namen und einem Wert. Der Name spiegelt dabei den Variablennamen, den ihr später innerhalb eures PHP-Codes abfragt, wieder, und der Wert den eigentlichen Inhalt der Variablen.


Zukünftig könnt ihr euch sogar die erneute Eingabe eines Feldes ersparen, da sich WordPress die Felder merkt und ihr sie nur noch über die Listbox auswählen und mit einem Wert versehen müsst.

Abfrage der Custom Fields mit PHP

Zu guter letzt müsst ihr die Felder natürlich noch irgendwie in eure Seite einbauen. Auch dieser Schritt ist nicht besonders schwierig und lässt sich mit einem kleinen Code-Schnipsel vollziehen.

if(get_post_meta($post->ID, 'custom_field', true) != null){
 echo get_post_meta($post->ID, 'custom_field', true);
}

Im ersten Schritt überprüfen wir, ob das von uns angelegte Feld nicht leer ist. Dies sollte besonders dann abgeprüft werden, wenn ihr einen Inhalt zusätzlich mit HTML-Markup ausstattet. So vermeidet ihr überflüssige Markups wie leere p-Tags.

In der zweiten Zeile rufen wir den Inhalt mit der WordPress-Funktion get_post_meta ab und geben ihn via echo aus. Der Funktion werden dabei drei Parameter übergeben: die ID des Datensatzes, der Name des Feldes und ein boolescher Wert, der bei true nur einen Wert zurückliefert und zum Beispiel kein Ergebnisarray.