Ich plane schon seit geraumer Zeit ein eigenes WordPress-Theme für Theme-Forest zu entwickeln. Dabei möchte ich natürlich nicht von Grund auf das Rad neu erfinden, sondern möchte mich nur um das Design und die schnelle Umsetzung kümmern müssen. Dazu werde ich mich einer Reihe von Frameworks und PlugIns bedienen, welche ich hier einmal kurz vorstellen möchte. Ziel des Beitrags ist es NICHT, die eigentliche Erstellung von Themes zu erläutern – dazu gibt es im Netz schon unendlich viele gute Tutorials.
Der Markt an Frameworks und PlugIns ist nahezu unendlich umfangreich. Es gibt jede Menge kostenlose Lösungen, aber man kann auch sehr viel Geld für kommerzielle Produkte ausgeben auf denen man aufbauen kann – diese möchte ich in diesem Beitrag allerdings ebenfalls nicht vorstellen.
Als zeitlichen Rahmen stelle ich mir einen Monat vor. Da ich das Theme neben dem normalen Job entwickle, halte ich das für einen angemessenen Zeitrahmen. Was ganz einfaches tritt man sicher auch schneller aus dem Boden, aber ich möchte ich auch nicht jeden Abend 6 Stunden nach der Arbeit in WordPress verbringen…
Lizenzen
Am wichtigsten sind natürlich die entsprechenden Lizenzen für das Projekt. Schließlich möchte man für die Arbeit auch entlohnt werden und entsprechend Geld verdienen.
So müssen es die Lizenzen erlauben, Teil eines kommerziell genutzten Projektes zu werden, welches auch weiterverkauft werden darf wenn etwas modifiziert wurde. Dafür kommen nur Lizenzen ohne Copyleft-Klausel in Frage (z.B. BSD oder MIT). Bei einigen Lizenzen ist man dazu verpflichtet, die Änderungen unter den selben Konditionen zu veröffentlichen. Das käme den Einkünften aber sicher nicht entgegen.
Da ich kein Experte für Lizenzrecht bin, kann ich keine Vollständigkeit oder Richtigkeit garantieren. Damit ich niemanden in den Ruin treibe, würde ich jeden einzelnen bitten, sich genau mit dem Thema zu beschäftigen. Einfach um zukünftigen Problemen direkt aus dem Weg zu gehen und keine rechtlichen Schwierigkeiten zu bekommen.
PlugIns und Frameworks
Option Tree – Mein persönlicher größter Knackpunkt sind die Admin-Optionen für das Theme. Ich habe wirklich nicht besonders viel Lust, ein komplettes Framework für ein paar Optionen zu schreiben und möchte so schnell wie möglich zum Ziel kommen. Genau hier setzt das kostenlose Framework Option Tree an. Es werden verschiedene Elemente von Haus aus angeboten – so kommt beispielsweise ein Color Picker zur Farbwahl auf einfachstem Wege ins Backend. Außerdem kann das Plugin für kommerzielle Projekte eingesetzt werden – die aktuellen Bewertung von nahezu durchgehenden fünf Sternen sprechen für sich. Das Plugin wird von Theme-Forest entwickelt und kostenlos zur Verfügung gestellt.
Ein großer Pluspunkt ist außerdem die Leichte Integration von zusätzlichen Metaboxen auf Post-Seite – und das sogar je Post-Type. Einfacher geht es wirklich nicht.
Gantry – Eine weitere Komplettlösung mit eigenem Admin-Interface, Grid-Funktionen, vorgefertigten Widget-Positionen und vielem mehr. Entwickelt wird das Framework von RocketThemes, welche selbst Themes auf Basis von Gantry vertreiben. Der Vorteil diesen Frameworks besteht eventuell auch darin, dass sowohl WordPress als auch Joomla unterstützt werden.
Theme Hybrid – Eine Art Basis-Theme mit etlichen Funktionen, Custom Page Templates und angeblich sehr leicht zu erweitern. Das Framework an sich ist erstmal kostenlos – für gute Tutorials und Dokumentationen muss man allerdings doch ein paar Euro ausgeben. Für mich an dieser Stelle erstmal weniger interessant. Der Vollständigkeit halber sei es dennoch erwähnt.
Roots Theme – Ebenfalls ein Basis-Theme. Das besondere daran ist, dass es auf Twitter Bootstrap basiert und auf git verfügbar ist. Lizensiert wird diese Grundlage unter der MIT Lizenz.
Runway – Ein relativ junges WordPress-Framework um einem die tägliche Arbeit etwas einfacher zu gestalten. Ich muss gestehen, dass ich es mir nicht näher angesehen habe. Sieht aber alles in Allem sehr interessant aus. Ebenfalls auf github zu finden. Lizenzinformationen konnte ich leider nirgendwo finden – hier bei Interesse bitte selbst suchen.
Bones ist ein Blank Theme, welches unter der WTFPL (Do What the Fuck You Want to Public License) lizensiert ist. Es bietet also eine optimale Basis, für Themes, welche auch verkauft werden dürfen.
_s (Underscore s) ist ebenfalls ein guter Start, welcher scheinbar immer mehr Anklang in der Community findet. Ich habe mich allerdings nicht näher mit der Thematik beschäftigt.
Wenn man Fan von Bootstrap ist, dann ist BootstrapWP sicher die richtige Basis für das eigene Projekt. Bootstrap selbst, steht unter MIT-Lizenz zur Verfügung, und stellt so auch kein Hindernis für kostenpflichtige und kommerzielle Projekte dar. Das größere Problem ist hier das BootstrapWP, welches unter der GPLv3 lizensiert wurde und somit eine Copyleft-Lizenz darstellt.
Als JavaScript-Framework führt sicherlich kein Weg an jQuery vorbei. Ich denke zu dem Framework brauche ich nicht mehr zu sagen. Alternativlos – und ebenfalls unter der MIT-Lizenz veröffentlicht. Ob man auf jQuery wirklich verzichten kann, weiß ich nicht. Ich kann es jedenfalls nicht.
Weiterhin kommt heute ja kaum ein Theme ohne Slider aus – das ist zwar irgendwie langsam eine Seuche, aber wenn es der Markt fordert, muss man der Sache wohl nachkommen. In dem Bereich werde ich es mit ResponsiveSlides (github) probieren. Mit dem Slider hatte ich zwar noch keinen Kontakt, aber er sieht sehr schön schlank aus.
Um das Menu mit wenigen Handgriffen responsive zu bekommen, kann man auf sidr (github) setzen (MIT-Lizenz).
Für mein erstes Theme, werde ich auf folgende Komponenten setzen:
- Bootstrap 3
- Option Tree
- jQuery
Wie man sieht, schreibe ich lieber selbst. Als ich mit dem Artikel begonnen habe, stand noch das Bones-Theme in der Liste. Aber da muss man so viel Löschen und anpassen, dass alles nach und nach selbst aufbauen aus meiner Sicht sogar sehr viel schneller geht.
Demodaten
Damit man möglichst viele Fehler direkt am Anfang abfangen kann, würde ich dazu raten in einer sauberen Installation zu arbeiten und die Demodaten zu installieren. Dieses findet man hier. Das XML importiert man dann unter Tools / Import im Backend. Dort wählt man WordPress aus und installiert die entsprechende Erweiterung. Die Basis ist damit schon fertig.
In diesem Artikel ist weiterhin sehr gut beschrieben, was eine Entwicklungsumgebung noch für PlugIns und Konfigurationen enthalten sollte.
Name des Themes
Sich jetzt schon über Namen zu sprechen scheint etwas früh – aber man sollte auf jeden Fall darauf achten, dass man z.B. keine Markenrechte verletzt. Andernfalls könnte ein Unternehmen dann doch klagen, und man muss sein Theme umbenennen. Auf der anderen Seite ist es sicher schlau, dass man einen Namen wählt, unter dem das neue Theme auch schnell bei den gängigen Suchmaschinen gefunden wird – inflationär verwendete Begriffe sollte man also vermeiden. Außerdem schadet es sicher nicht, zu prüfen ob schon ein Theme mit dem selben Namen existiert. Man möchte schließlich nicht verwechselt werden.
Fähigkeiten und Umfang
Für den Anfang hilft es sicherlich, dass man sich auf das wesentliche konzentriert und sich nicht zu viele Ziele setzt – immerhin möchte man schnell eine stabile Version zur Verfügung stellen. Erweitern kann man den Umfang später immer noch – dann profitieren ebenfalls die bisherigen Käufer von den Erweiterungen, und man kann die Verkäufe langsam steigern. Was bringt es, wenn man mehrere hundert Arbeitsstunden in ein Theme steckt, welches dann aber weiterhin von einer stabilen Basis entfernt ist.
Ich werde mich daher auf ein paar grundlegende Features konzentieren:
- Responsive (Themes, welche nicht full responsive sind, haben meiner Meinung nach keine Chance mehr auf dem Markt. Gerade wenn man von null beginnt, sollte man die Chance nutzen alles so variabel wie möglich zu halten, um am Ende nicht alles umbauen zu müssen)
- Auf die Zielgruppe angepasste Elemente – so wäre es beispielsweise sehr hilfreich, wenn man ein Theme für Schwimmbäder baut, ein Widget für Tarife und Öffnungszeiten bereitzustellen
- Mehrere Farbvariationen – damit man etwas mehr Vielfalt bietet, sollte es möglich sein, dass Theme grundlegend per Optionen zu customizen. Also beispielsweise die Wahl von verschiedenen Farbvariationen oder wechselbare Hintergrundbilder
- Viele Optionen um das Theme individueller zu gestalten. Mit Option Tree ist es sehr einfach, alles in eine Option zu verpacken und diese im Frontend abzufragen.
Dokumentation
Dokumentation ist natürlich ein anstrengendes Thema – aber ich möchte es so einfach wie möglich halten. Daher werde ich für die Dokumentation verschiedene Tools testen, um mir das Leben so einfach wie möglich zu machen. Es wird eine eigenständige HTML-Dokumentation entstehen, welche wohl mit dem Documenter 2.0 geschrieben wird.
Workflow
Natürlich sollte das eigene Theme auch per Versionskontrolle verwaltet werden. In diesem Fall würde ich uneingeschränkt git empfehlen. Einfach geht es wirklich nicht. Wenn man auf ein lokales Backup verzichten möchte, dann richtet man einfach ein Remote auf Bitbucket ein – der Vorteil gegenüber github liegt auf der Hand: Es ist kostenlos für private Repositories.
Fazit
Wie man sieht gibt es eine sehr lange Palette an Tools und Frameworks, zwischen denen man sich entscheiden muss. Mein oberstes Ziel bei dem ersten eigenen Theme war es, das Gesamtpaket so schlank wie möglich zu halten. Einfach, um schnell eine funktionierende Basis zu haben die sich verkaufen lässt. Es bringt eben nichts, hunderte von Stunden in ein Theme zu stecken, welches sich am Ende fünf mal verkauft. Da sollte man lieber den Ansatz fahren, die Themes grundlegend fertig zu stellen und neues Features nach und nach hinzuzufügen, wenn das Ganze sich verkauft.
An Software braucht man am Ende gar nicht so viel. Eigentlich nur einen Text-Editor. Da ich aber etwas komfortabler entwickeln möchte, setze ich auf phpStorm. Zusätzlich kommt CodeKit 2 zum Einsatz, da ich mit LESS arbeiten möchte.