Entwicklungsumgebung¶
Die Umgebung¶
Entwickelt wird in einer lokalen WordPress-Installation mit DDEV. Das Projekt
heißt twtheme-local und ist unter https://twtheme-local.ddev.site erreichbar.
| Was | Version |
|---|---|
| PHP | 8.4 |
| Webserver | nginx mit FPM |
| Datenbank | MariaDB 11.8 |
Der Mindeststand für das Theme selbst liegt niedriger — WordPress ab 6.7 und PHP ab 8.2. Entwickelt wird bewusst auf einer neueren Version, damit Kompatibilitätsprobleme früh auffallen.
Starten¶
Danach steht die Seite bereit, und WP-CLI ist innerhalb des Containers verfügbar:
Das Theme einrichten¶
Gebraucht werden Node und npm auf dem Host — der Build läuft außerhalb des Containers.
Zwei Themes, ein Projekt¶
| Theme | Rolle |
|---|---|
twtheme |
der Parent, hier wird entwickelt |
twtheme-demo |
ein minimales Child, das aktiviert wird |
Aktiv ist immer das Child, nie der Parent. twtheme-demo ist gleichzeitig die
Vorlage für echte Projekt-Childs: Dort ist jeder der vorgesehenen
Erweiterungswege einmal ausgeschrieben — theme.json, Template-Overrides,
Asset-Enqueue und Parent-Filter.
Siehe Child-Theme.
Beim Arbeiten¶
An Stylesheets:
An JavaScript:
Vor jedem Commit:
Nach Umbauten, die Module berühren:
Der zweite Lauf startet eine WordPress-Instanz kalt und braucht daher eine laufende Umgebung. Siehe Qualität prüfen.
Den Release-Hook einhängen¶
Danach packt nach jedem Commit ein Hintergrundlauf die Release-Pakete und hebt die
Versionen an. Protokoll unter .git/twtheme-release.log.
Siehe Release-Pakete.
Änderungen erscheinen nicht¶
Nach einem Build im Browser noch die alte Fassung zu sehen, hat meist eine von drei Ursachen:
- Der Build ist nicht gelaufen — Datum der Datei in
assets/prüfen. - Die Asset-Version ist nicht erhöht — in der Admin-Bar unter TWtheme → Update assets.
- Ein Caching-Plugin liegt dazwischen.
Für Übersetzungen¶
Gebraucht werden WP-CLI und msgfmt. WP-CLI liefert DDEV mit, msgfmt kommt aus
den Gettext-Werkzeugen:
Siehe Übersetzungen.
Nicht mit dem Paket installieren¶
Das Auslieferungspaket enthält kein source/, scripts/ und docs/. Eine
Installation darüber würde diese Ordner entfernen.
Auf einer Entwicklungsumgebung wird deshalb nie das Paket installiert, sondern mit
Git gearbeitet. Der TW Hub Agent erkennt ein Arbeitsverzeichnis an .git,
node_modules, source oder scripts und verweigert die Installation.
Wo was liegt¶
| Ordner | Inhalt |
|---|---|
templates/, parts/ |
Block-Templates und Parts |
template-parts/ |
PHP-Bausteine |
includes/theme-options/ |
die Module |
includes/engine/ |
Feld-Engine |
source/ |
SCSS- und JS-Quellen |
assets/ |
gebaute Ergebnisse |
scripts/ |
Build-, Prüf- und Release-Werkzeuge |
docs/ |
Arbeitsdokumente zum Entwicklungsstand |
languages/ |
Übersetzungen |
Die Arbeitsdokumente im Theme¶
Unter docs/ im Theme-Repository liegen Dokumente, die zum Entwicklungsstand
gehören und deshalb nicht in dieser Dokumentation stehen:
| Datei | Inhalt |
|---|---|
A11Y-AUDIT-CHECKLIST.md |
Prüfliste Barrierefreiheit |
BLOCK-REVIEW-MATRIX.md |
Stand der Blockprüfung |
wp7-sass-deprecation-plan.md |
Umstellung veralteter Sass-Konstrukte |
wp7-pagespeed-plan.md |
Vorhaben zur Ladezeit |
wp7-megamenu-spec.md |
Spezifikation des Megamenüs |
Die drei überführten Verträge — Child-Theme, Modul-Vertrag und CSS-Architektur — liegen dort nur noch als Verweis auf diese Dokumentation.