Viele Themes bringen Funktionen mit, die dem Nutzer nur im ersten Moment helfen. Sobald ein Theme-Wechsel ansteht, sind diese Funktionen, die über die Präsentation der Inhalte hinausgehen, nicht mehr da – ebensowenig Inhalte, die eventuell damit erstellt wurden.

Ein Theme ist für die Präsentation, und nur für die Präsentation

Ein Theme ist dafür da, die Inhalte der WordPress-Installation darzustellen. Nicht mehr, und nicht weniger. Viele Themes liefern aber Funktionen, die in ein Plugin gehören, da sie über die Darstellung der Inhalte hinausgehen. Bei ThemeForest habe ich mir einfach mal das erste Theme gegriffen, und das wirbt unter anderem mit folgendem Satz:

„Wakana comes with booking system right out of the box, no extra plugin required.“

„Cool“, denkt sich da der unbedarfte Nutzer, „genau das, was ich für meine neue Website brauche“. Und irgendwann möchte er dann ein anderes Theme nutzen, aber das Buchungssystem gerne behalten. Und hier liegt das Problem: Das geht nicht so einfach. Er muss sich jetzt ein Plugin suchen, das diese Funktion umsetzt, damit er ein anderes Theme verwenden kann.

Oder ein anderes Szenario: Das Theme ermöglicht die Erstellung eines Portfolios durch einen Custom-Post-Type (CPT). Der Nutzer legt fröhlich neue Inhalte mit dem CPT an, wechselt irgendwann auf ein neues Theme und wundert sich, warum alles weg ist. Er darf sich jetzt ein Portfolio-Plugin suchen und alle Galerien neu erstellen.

Ich denke, im Theme-Verzeichnis von WordPress.org wird das ganz gut gehandhabt, und da gilt folgendes:

CPTs, CTs, and shortcodes are not allowed.

Justin Tadlock in einem Kommentar zu „Meeting Minutes 06/11/15

Solche Dinge sollten immer in ein Plugin ausgelagert werden – Sachen wie eine Buchungsfunktion sowieso. Und das könnt ihr als Theme-Entwickler ja problemlos leisten: Ihr packt den Code statt in die functions.php in ein Plugin, und weist auf der Theme-Seite darauf hin. Ihr könnt da auch kurz erklären, warum diese Funktionen in ein Plugin ausgelagert wurden, und der Nutzer wird es erstens verstehen und euch zweitens auch noch dankbar sein!

Vielleicht werdet ihr euch jetzt fragen: Und was ist mit Widgets? Widgets sind in der Hinsicht bei WordPress.org eine Grauzone. Solange ein Widget nicht die Erstellung von Inhalten ermöglicht, sondern lediglich bestehende Inhalte darstellt, ist es okay. Natürlich wäre es auch hier für den Nutzer ganz schön, wenn er das Widget Theme-unabhängig verwenden könnte. Ihr könntet dafür das Widget ja in ein Plugin auslagern, grundlegendes CSS hinzufügen, damit es unabhängig vom Theme annehmbar aussieht, und dann in das CSS eures Themes weitere Styling-Angaben für das Widget schreiben.

Und ein Slider? Ist der okay?

Wie Justin Tadlock in dem verlinkten Artikel beschreibt, ist ein Slider nicht mehr als HTML, CSS und JavaScript, und deshalb natürlich okay, um beispielsweise die letzten Beiträge in Form eines Sliders darzustellen. Bei Themes, die den Nutzer eigene Slides erstellen lassen – Stichwort: Revolution Slider – sieht das schon wieder ganz anders aus.

Fazit und Appell

Lagert alles in Plugins aus, was dem Nutzer die Möglichkeit gibt, eigene Inhalte zu erstellen. Gehört nicht zu denen, die ihre Themes mit möglichst vielen Funktionen vollpacken, um den Nutzer zu beeindrucken, ihn dann aber (vermutlich) verärgert zurücklassen, wenn er das Theme nicht mehr nutzen möchte und Inhalte verliert, die er weiterhin nutzen möchte. Nichts spricht dagegen, dafür kleine Plugins zu erstellen, die sich toll in euer Theme integrieren, von denen der Nutzer aber auch nachher noch profitiert – auch wenn er bei einem neuen Theme vielleicht ein paar Dinge neu stylen muss. Das ist deutlich weniger Aufwand, als die komplette Funktion neu erstellen zu müssen.