WordPress als CMS – Content Types mit Custom Field Templates
Kategorie: WP Plugins
Beim Bau von Websites gibt es viele Philosophien und viele verschiedene Tools. Jeder Entwickler hat seine Vorlieben gegenüber eines Setups mit dem er/sie Erfahrung hat, und bereits geabeitet hat. Für uns ist WordPress dieses Tool, das wir unseren Kunden als Content Management System anbieten. Haben Sie schon einmal eine Website mit dem CMS WordPress für einen Kunden erstellt? Nein / Ja? Wir haben ein großes Problem von verschiedenen Kunden als Feedback auf den Einsatz von WordPress als CMS bekommen, und möchten unseren Lösungsansatz hier präsentieren.
WordPress als CMS – Ich bin kein CMS
Beim Einsatz der Blogging Software als Backend für eine Website gibt es zunächst einmal ein offensichtliches Dilemma. Die Open Source Software WordPress wurde als Bloging Tool in die Welt gesetzt und ist nativ nicht dafür gedacht eine Website mit verschiedenen Formen von Inhalten zu verwalten. Klar wurde die Software in den Jahren ihrer Existenz weiterentwickelt und durch eine rege Community von Entwicklern mit Plugins und Hacks zu dem gemacht, was sie heute darstellt, dennoch stösst man beim entwickeln von Webseiten auf Basis von WordPress immer wieder auf den Ursprung der Software – schnell und einfach einen Artikel zu verfassen und diesen Artikel in einer Chronologie auf einer Seite aufzulisten.
WordPress als CMS – Posts und Content Types
In 90% der Fälle möchte der Auftraggeber einer Website Inhalte die zB Newseinträgen entsprechen. In diesem Fall bietet sich die Verwendung eines Posts bzw. Artikels an. Chronologisch geordnete Einträge mit Text, Bild & Co bzw. in komplexeren Fällen ein Katalog mit verschiedenen Schubladen, welche den Kategorien von Blogposts entsprechen würden.
Die Startseite einer WordPress Installation dient normalerweise zur Darstellung der neuesten Einträge eines Blogs das heißt hier werden sortiert nach Publikationsdatum alle Einträge, egal aus welcher Kategorie sie stammen, aufgelistet. Möchte man hier zum Beispiel eine Kategorie von Artikeln nicht sehen, muss man bereits in die natürliche Funktion von WordPress eingreifen.
Steht man nun noch vor dem weiteren Problem, das sich ein Content Type mit dem Funktionsumfang eines Blogposts deckt, jedoch ein weiterer Content Type noch Zusatzfelder braucht, kann man dies mit sogenannten Custom Fields lösen. Das heißt nichts anderes als das man für den Default Content Type Post noch weitere Felder zur Eingabe definiert.
WordPress Custom Fields – Die Standard Variante
Die Standard Funktion der Custom Fields von WordPress ist recht einfach. Über ein Interface beim Erstellen eines Artikels können Key Values, also ein Keyword und ein Wert, angelegt werden. Hat man einmal ein Key Value angelegt, hat man in Zukunft diese Variable bei jedem Post zur Verfügung.
Haben Sie nun zB Content Type News & Content Type Pressemitteilungen (PDF), dann können Sie die News mit dem Standard Interface einen Blogposts realisieren und die Pressemeldungen, die normalerweise zusätzlich zum Anreisser des Textes eine Download-Variante besitzen bzw. ein Pressebild in Druckauflösung realisieren Sie mittels Custom Field Key Values zB.:
PressemitteilungPDF = Download Link zum File
Pressebild = Download Link zum Image in Druckauflösung
Fotograf = Name des Pressefotografen
Im Loop (While Schleife ob Posts vorhanden sind) müssen nun nur noch die Key Values bzw. Custom Fields eingebaut werden. Dies passiert über die WordPress Funktion get_post_meta() die nichts anderes tut als das beim aktuellen Artikel nachgesehen wird, ob mit dem übergebenen Key ein Value vorhanden ist. Genau diesen Key und den dazugehörenden Value haben wir vorher angelegt. In unserem Beispiel wäre die Abfrage also:
<?php if ( get_post_meta($post->ID, ‚Fotograf‘, true) ) : ?>
<strong>Fotograf: </strong><?php echo get_post_meta($post->ID, ‚FotografenHinweis‘, true) ?>
<?php endif; ?>
Als Resultat erhalte ich bei der Ausgabe meinen Wert, den ich im Artikel für die Variable FotografenHinweis definiert habe.
Fotograf: Name des Pressefotografen
Sie werden nun sagen, das kann man doch einfach in den Content eines Eintrags als Link reinpacken, wozu dieser Aufwand? In der Regel ist es so, das Content Manager gerne mit vorgefertigten Eingabemasken arbeiten, um so genau zu wissen, welche Informationen sie für welchen Content Type eingeben müssen, bzw. um sich so eine Ordnung zu schaffen.
Für Entwickler stellt das eine akzeptable Lösung dar, einem Kunden würden wir so etwas nicht zumuten. Hier kommt das WordPress Plugin Custom Post Templates zum Einsatz.
WordPress Plugin Custom Field Templates
Mit dem Plugin lassen sich für verschiedene Content Types verschiedene Formular Interfaces für die Custom Fields realisieren. Im Grunde tut es genau das gleiche wie die Standard Variante, jedoch erleichtert dieses Plugin die Bedienung für den Kunden immens. Nehmen wir wiederum das Beispiel unserer Pressemittleilung mit den beiden Zusatzfeldern, dann würden wir für eine Pressemitteilung folgendes Custom Field Template anlegen:
Template Title: Pressemitteilungen
Category ID: ID der Post Kategorie Pressemittelungen
Template Content:
[PressemitteilungPDF]
type = file
[Pressebild]
type = file
[Fotograf]
type = text
size = 50
label = Name des Pressefotografen
Erstellt ein Content Manager der Website nun einen neuen Artikel und wählt die Kategore „Pressemitteilung“ aus, dann wird in der Box Custom Fields eine Maske angezeigt, bei der ich zwei Uploads für die Pressemitteilung und das Pressebild sowie ein Texteingabefeld für den Fotografen habe.
Sie werden sehen, ihre Kunden werden ihnen diesen Zusatzaufwand bei der Gestaltung der Eingabemaske im WordPress Backend danken.
2 Antworten zu “WordPress als CMS – Content Types mit Custom Field Templates”
Schreibe einen Kommentar
Bei allen mit * gekennzeichneten Links handelt es sich um so genannte Affiliate-Links, das heißt, dass aufgezeichnet wird, dass sie die Empfehlung oder das Plugin hier gefunden haben. Bei einem Kauf erhält der Betreiber der Webseite eine Mittlerprovision vom Anbieter der Software dafür erstattet, ihren Kosten erhöhen sich dadurch nicht. Generell spreche ich auch nur Empfehlungen für Produkte aus, die ich selbst bei Kunden oder eigenen Projekten im Einsatz habe.
Hallo,
ich habe eine Frage zum Custom Fields Template Plugin.
Das mit den individuellen Felder hab ich soweit verstanden und kann ich anwenden.
Ich würde aber gerne im Backend die Aufteilung der Costum Fields verändern.
Im Moment sind die nur untereinander, ich würde also gerne einige Felder in eine Tabelle packen, ist sowas möglich?
Das soll dann ungefähr so aussehen:
Montag – Startzeit – Endzeit
Dienstag – Startzeit – Endzeit
Mittwoch – Startzeit – Endzeit
…
wobei vor den Tagen ein Radiobutton steht, und die Zeiten ein Dropdown sind.
Vielen Dank
Notify me with email at a new response 🙂
Hallo Phil,
danach haben wir auch immer wieder Ausschau gehalten, leider gibt es derzeit nicht die Möglichkeit, dies umzusetzen, da sich Custom Fields nicht kombinieren lassen.
Jedes Custom Field entspricht somit inem Key-Value Wert. Wenn man es unbedingt braucht, dann könnte man mittels CSS etwas reinhacken. Das wäre das einzige, was mir
derzeit einfällt als mögliche Lösung.
Solltest du was finden, sag uns bitte Bescheid. Wäre auch für uns interessant!
Gruß
Markus