WordPress Theme Entwicklung

Wie ich im Artikel Eine erfolgreiche WordPress Webseite aufbauen – der Praxisbericht erwähnt habe, war mir kein WordPress Theme gut genug. Es gibt einige tolle kostenlose WordPress Themes und kostenpflichtige Premium-Themes für WordPress, die ich getestet habe. Letztendlich hatten aber alle einen Haken. Meistens war es die Performance. Also habe ich mich entschlossen, ein eigenes Theme zu entwickeln. Das Ausmaß dieser Entscheidung ist noch nicht abzusehen.

Ein WordPress Theme konzipieren

Bevor es daran geht, sein WordPress Theme zu entwickeln, sollte ein Konzept existieren.

Warum benötige ich ein eigenes Theme?

Was fehlt an den 183.486 WordPress Themes, die es schon gibt? Was kann ich mit meinem eigenen Theme, was ich mit Theme Buildern oder Multipurpose Themes wie Divi oder Elementor nicht kann? Ich habe eine Menge eigenartiger Ideen für meine Webseiten, die ich in individuellen Child-Themes platzieren möchte. Mit überladenen Theme Buildern wie Divi bin ich bereits nach kurzer Zeit im Streit über Ladezeit und Performance auseinander gegangen. Astra, OceanWP, und GeneratePress gefielen mir gut, hatten aber entweder Einschränkungen mit denen ich nicht leben wollte oder von Anfang an Performanceprobleme. Entweder fehlende Features oder überladen. Zu aufwändig wäre es geworden, die Performance in Child-Themes wieder in den Griff zu bekommen.

Wo möchte ich das Theme einsetzen?

Wenn es nur um eine einzige Webseite geht, kann einiges Hart-codiert werden. Der Google Analytics oder Matomo Code wird einfach in das Footer-Partial kopiert, anstatt es über die Theme-Konfiguration dynamisch einstellbar zu machen. In meinem Fall sind es nicht nur mehrsprachige Webseiten, die dann Probleme machen. Ich möchte mein Theme auf komplett unterschiedlichen Webseiten einsetzen.

Was für Funktionen soll das Theme haben?

WordPress kann viel Dinge leisten. Blog, CMS, Newsportal oder Online-Shop. Welche Features soll das Theme unterstützen. Natürlich können im eigenen Theme jederzeit Funktionen nachgerüstet werden. Wer vorher schon darüber nachdenkt, hat es trotzdem einfacher, sein Theme sauber zu strukturieren.

Ich führe eine Feature-Liste und möchte mit den meisten Core-Funktionen und wichtigen Plugins kompatibel sein. Am wichtigsten ist mir die Kompatibilität zu Gutenberg, dem neuen WordPress Editor.

Wie soll das Theme veröffentlicht werden?

Soll das Theme kostenfrei auf WordPress.org oder kostenpflichtig auf einem Theme Marktplatz veröffentlicht werden? Soll der Code des Themes auf Github zur Verfügung gestellt werden? Welche Open Source Lizenz ist dafür richtig?

Natürlich ist es keine Pflicht, sein Theme zu veröffentlichen. Wer ein Theme für die eigene Webseite erstellt und Einstellungen, Logo und Farben deshalb nicht konfigurierbar macht, sollte diese Idee gleich von der Todo-Liste streichen. Für WordPress-Themes ist es zwar Pflicht, den Code unter einer Open Source Lizenz zu veröffentlichen. Das bedeutet aber noch lange nicht, dass jedes Theme veröffentlicht werden muss.

Ich möchte mir diese Möglichkeit offen halten, deshalb halte ich die WordPress Review Guidelines ein.

Wie soll das Theme denn heißen?

Naja, ist doch nicht so wichtig. Namen sind Schall und Rauch. Nicht ganz. Die Namensgebung ist durchaus wichtig. Sofern es nicht nur um eine private Eigenentwicklung geht, sollte vorab geprüft werden, ob der Name mit den WordPress Theme Naming Conventions vereinbar ist. Danach ist zu prüfen, ob der Name bereits im Theme Verzeichnis von WordPress.org und dem potentiellen Theme Marktplatz existiert. Wer darauf Wert legt, auch auf Github mit einer eigenen Organisation (also einem Firmennamen oder Open Source Team) vertreten zu sein, sollte auch dort die Verfügbarkeit prüfen.

Soll aus dem Theme eine Marke werden, dann ist auch die markenrechtliche Prüfung, die Domainrecherche und die Verfügbarkeit in den entsprechenden sozialen Netzwerken sinnvoll. Wie man eine erfolgreiche Marke aufbaut, erkläre ich in Kürze in einem eigenen Artikel.

Aus Entwicklersicht ist die Namensgebung wichtig, sofern Namespaces verwendet werden sollen. Namespacing in PHP bietet viele Vorteile und sollte bei der Entwicklung von WordPress Themes und Plugins viel öfter Verwendung finden. Einen Artikel über Namespacing schreibe ich in Kürze. Bis dahin: https://www.google.com/search?q=namespace+wordpress+theme

Mein Theme heißt Dyna, weil es sehr dynamisch sein wird. Da es kein fertiges Theme werden soll, sondern eher ein Starter-Theme mit vielen Extras, nenne ich es WordPress Theme Framework. Die Markenrecherche zeigt mir freie Bahn, die Domain https://dyna.press war frei und in Github habe ich den Code unter Dyna-Press verfügbar gemacht. Dyna selbst war in Github durch ein ungenutztes Profil belegt. Ich werde in einiger Zeit versuchen, unter Berufung auf die Github Name Squatting Policy an den besseren Namen zu kommen. In sozialen Netzwerken bleibt mir dagegen nichts anderes übrig, als Dyna-Press auszuschreiben. Profile auf Facebook, Twitter und Co. habe ich ohnehin momentan noch nicht geplant.

Ein WordPress Theme von Grund auf entwickeln

Wer sich mit der Entwicklung eines eigenen WordPress-Themes beschäftigt, sollte wissen, was für Dateien im Theme-Folder benötigt werden und wie ein Theme aufgebaut wird. Dieses Wissen hilft auch dann, wenn dieser Entwicklungsansatz gar nicht infrage kommt.

Ein Theme von Grund auf zu entwickeln wird hier erklärt: https://www.sitepoint.com/build-wordpress-theme-from-scratch-basics/. Ein eigener Artikel auf Deutsch ist in Arbeit.

Ein Starter-Theme oder Theme-Framework als Basis

Da Dyna selbst ein Starter-Theme bzw. Theme Framework ist, würde ich diese Variante bevorzugen, wenn ich ein eigenes Theme entwickeln würde. Ich habe mich dazu entschieden von der untersten Basis aus zu entwickeln, weil ich für Gutenberg (zur Zeit des Starts meiner Entwicklung noch in der Beta-Phase) kein passendes Starter-Theme gefunden habe.

Heute sind mehrere Starter-Themes und Theme Frameworks mit Gutenberg kompatibel. Eine Liste der besten Starter-Themes und Theme-Frameworks für WordPress und Gutenberg gibt es in Kürze.

Es geht Los mit der Entwicklung

In wenigen Tagen starte ich hier mit der Praxis … bis dahin: https://wpshout.com/wordpress-theme-development/