Mit dem Advanced Custom Fields Plugin Wordpress als "richtiges" CMS nutzen


Wordpress ist ein richtiges Content Management System. Wie jedes andere System auch mit dem man Inhalte managed eben. Aber Wordpress wurde primär dazu geschaffen als Blogplattform zu fungieren und eben nicht dafür komplexe einzelne Seiten mit verschiedensten Inhaltsbereichen von unterschiedlichen Personen bearbeiten zu lassen.

Eine Seite bei Wordpress besteht aus dem Titel und dem Inhalt. Optional noch aus einem Bild und einem Auszugstext.

Möchte man eine Seite erstellen die beispielsweise aus drei unterschiedlichen Texten besteht hat man schnell ein Problem. Insbesondere wenn diese Texte an drei komplett unterschiedlichen Stellen im Layout erscheinen sollen.

Klar, man kann einfach das HTML Gerüst samt Inhalt in den Editor schmeißen.

Das führt aber spätestens dann zu Problemen wenn die Seite wieder und wieder von unterschiedlichen Personen bearbeitet werden soll. Wird ein HTML Tag ausversehen beschädigt ist schnell das gesamte Layout zerschossen. Eine saubere Trennung zwischen Layout und Inhalt ist so nicht möglich.

Eine weitere Möglichkeit wäre es die Texte direkt in das PHP Template der Seite einzubauen. Damit verwehrt man aber den Content - Lieferanten den Zugang zur schnellen und einfachen Bearbeitung von eben diesem. Nicht gerade der Sinn eines CMS.

Eine schon interessantere Möglichkeit wäre es da die “Benutzerdefinierten Felder” dafür einzuspannen. Wordpress gibt einem die Möglichkeit bei jedem Artikel und jeder Seite “Custom Fields” (<- oder eben “Benutzerdefinierte Felder” auf deutsch…)anzulegen.

Hier wird ein Schlüssel und ein dazu passender Wert eingegeben. Z.B. der Schlüssel “Haarfarbe” und der Wert “blond”. Ich kann jetzt diesen Schlüssel oder seinen Wert, oder auch beides, auslesen und in mein Theme einbauen.

Ich könnte also einen “Text A”, “Text B” und “Text C” Schlüssel anlegen und den dazu erfassten Wert an drei unterschiedlichen Stellen im Wordpress Theme bzw. innerhalb eines bestimmten Templates ausgeben.

Aber: Diese benutzerdefinierten Felder wurden primär dazu geschaffen kurze und einfache, tabellarische Werte aufzunehmen. Soll ein komplexer Text mit Bildern und Absätzen erfasst werden stößt diese Wordpress Funktion schnell an seine Grenzen.

Die Lösung: Das "Advanced Custom Fields" Plugin für Wordpress

advanced custom fields plugin für wordpressUnd hier kommt das “Advanced Custom Fields” Plugin (kurz: ACF) von Elliot Condon (@elliotcondon) ins Spiel.

Dieses nutzt die benutzerdefinierten Felder von Wordpress, gibt dem Administrator aber die Möglichkeit hierfür individuelle Eingabeformulare zu entwerfen und diese den Content Schreiberlingen anstelle des normalen Wordpress Editors zur Verfügung zu stellen. Z.B: drei WYSIWYG Editor Fenster für Text A, Text B und Text C. Oder Radiobuttons, Checkboxen, Bilder, Zugriff auf den Media Manager, Google Maps, Videos, einfache Textfelder und vieles mehr.

Wann und ob diese individuellen Eingabeformulare angezeigt werden und statt oder neben dem normalen Wordpress Editor kann sehr differenziert festgelegt werden.

Ich kann beispielsweise das Formular “Landingpage” anlegen und festlegen das dieses nur angezeigt wird, wenn eine Seite mit dem Template “Landingpage” angelegt werden soll.

Die so eingesammelten Eingaben kann ich dann individuell und an beliebiger Stelle wieder ausgeben. Z.B. in einem Template für eine Landingpage. Hierfür kann ich entweder die native Wordpress Funktion:

get_post_meta()

nutzen. Oder die von ACF zur Verfügung gestellte Funktion:

get_field()

Ich würde zur zweiten Funktion raten, da es bei der Ausgabe von get_post_meta() zu Darstellungs- bzw. Formatierungsfehlern kommen kann und nicht alle Optionen zur Verfügung stehen.

Legt man beispielsweise ein Eingabefeld mit dem Namen "custom_titel" an und baut anschließen diesen Code Schnipsel: <?php the_field('custom_title'); ?>

in das eigene Wordpress Template ein, wird der dort hinterlegt Wert genau an dieser Stelle angezeigt.

Fazit

Mit ACF können innerhalb einer Wordpress Instanz komplexe Inhalte eingegeben und ausgegeben werden, ohne das Inhalt und Code durcheinandergewürfelt werden. Entwickler behalten die volle Hoheit über den Code und Redakteure über ihren Inhalt. Für Wordpress Seiten mit komplexeren Layouts und mehreren Inhaltsbereichen ist ACF ein muss. Das Plugin selber ist kostenlos. In einer kostenpflichtigen Pro Version werden nützliche Erweiterungen (wie z.B. eine “Gallery”) mitgeliefert.