Manchmal benötigt man in WordPress Strukturen, die spezieller und kleinteiliger sind, als die üblichen Kategorien/Tag-Zuweisungen. Mit ein paar Umwegen und dem Plugin ACF ist es auch WordPress möglich, contentabhängige Listen zu generieren.

Wenn ich mir kleinere und moderne Content-Management-Systeme wie beispielsweise Processwire anschaue, bin ich schon etwas neidisch:

Bei Processwire gibt es keine vorgefertigten Feldtypen; man muss sie bei jedem Projekt neu aufbauen. Das führt dann dazu, dass solche Seiten eben durch die enorm vereinfachte Felder-Philosophie ziemlich schnell umgesetzt sind. Wie das genau aussieht und funktioniert, gibt’s im Video hinter diesem Link.

Eine Webseite für einen speziellen Kundenwunsch hätten wir damit wunderbar umsetzen können, wenn wir a) die Zeit gehabt hätten uns in Processwire intensiv einzuarbeiten und b) wir nicht so auf WordPress stehen würden.

Die Voraussetzungen

Die Kunden hatten eine alte Seite mit ziemlich vielen Daten, die in Beziehung miteinander stehen. Wenn wir uns auf die Processwire-Demo-Seite von oben beziehen: eine Seite mit Hochhäusern. Jeder Stadt sind dort Hochhäuser zugeordnet. Jedem Hochhaus eine spezifische Höhe, ein Baujahr und die Architekten. Diese spezifischen Daten sind wiederum untereinander verknüpft: Es gibt Übersichtsseiten über Architekten und welche Häuser sie entworfen haben, wie auch Seiten mit Häusern gleicher Höhe.

Das Problem

Das Problem an der Sache war, dass die gesamten Daten der alten Kundenseite via PHP aus Text-Dateien ausgelesen wurden und bei Syntaxfehlern natürlich das ganze Beziehungsgeflecht kaputt gemacht werden konnte. Deshalb hatte der vorherige Entwickler gesagt: Ihr dürft das nicht ändern, ich mach das gerne für euch.

Der Kunde möchte es aber bei einer WordPress-Seite selbst ändern.

Die Vorüberlegungen

Uns ist es enorm wichtig, wenn nicht sogar am wichtigsten, dass die Update-Fähigkeiten unserer WordPress-Seiten gewahrt bleiben. Deshalb sind Frickeleien am Core natürlich tabu und auch Plugins werden bei uns nur entwickelt, wenn es zu diesen einen längerfristigen Service & Wartungsvertrag gibt.

Wir brauchen eine flexible Lösung, die quasi das Kategorie/Tag-System von WordPress aufbohrt. Zusätzlich soll der Inhalt nur an speziellen Positionen im Template ausgeben werden und jederzeit selbst von dem Kunden gepflegt werden können.

Und es klappt!

Die workin media Lösung

Viele, die sich schon intensiver mit WordPress auseinandergesetzt haben, kennen mit Sicherheit das Plugin Advanced Custom Fields (ACF) von Elliot Condon. Damit kann man relativ simpel neue Inhaltsfelder generieren um nicht-statische Inhalte an fixen Positionen im Layout auszugeben.

Ansicht des Plugins im Backend.

Ansicht des Plugins im Backend.

Jedem Feld kann dort ein Label zugeordnet werden. Wir haben nun das Beispiel „Hochhaus“ genommen und als Checkbox angelegt: Jedes Hochhaus ist dort seiner Seite zugeordnet (siehe links).

Wenn man nun eine neue Seite erstellt, beispielsweise „New York City“, dann kann dort der Nutzer „Park Avenue“ und „Chrysler Building“ anhäkeln; denn wir wissen ja alle, dass das AT&T Corporate Center in Chicago steht.

Diese manuelle Zuordnung mussten wir so implementieren, weil bei unserem Kunden, anders als bei den Hochhäusern, sich die Elemente einer Kategorie oft verändern können und er so die Möglichkeit hat auf der Seite, auf der sie ausgegeben werden, die Inhalte zu definieren.

Die Ausgabe haben wir mit folgendem Code in der function.php des aktiven Themes gesteuert:

[sociallocker]

[/sociallocker]

Was macht der Code? Er erstellt über den Shortcode [hochhaus] eine Liste, mit allen angehäkelten Häusern an der Position des Shortcodes. Außerdem verlinkt er sie zu dem Linkziel, das im ACF definiert wurde.

Wofür eignet sich die Methode?

  • Darstellung kleinerer Inventarlisten
  • Zuordnung verschieder Datenpunkte
  • Flexible Handhabung/Pflege der Ausgabe

Bildnachweis: pixabay.com