Module schalten¶
Der Funktionsumfang von TWtheme steckt in 50 Modulen. Geschaltet werden sie unter Theme → Module.
Was Abschalten bedeutet¶
Ein abgeschaltetes Modul wird nicht geladen: kein PHP, keine Blöcke, keine Optionsfelder. Es ist nicht nur ausgeblendet, sondern gar nicht vorhanden.
Daraus folgen drei Dinge, die man wissen sollte:
- Ein Reiter in den Theme-Einstellungen verschwindet mitsamt seinen Feldern. Die gespeicherten Werte bleiben in der Datenbank und sind nach dem Wiedereinschalten unverändert da.
- Ein Block aus dem Modul ist im Editor nicht mehr auffindbar. Inhalte, die ihn bereits verwenden, geben im Frontend nichts aus.
- Ein Inhaltstyp aus dem Modul verschwindet aus dem Menü. Die Einträge bleiben in der Datenbank, sind aber nicht erreichbar.
Abschalten ist damit gefahrlos umkehrbar, solange keine Inhalte davon abhängen. Wo Inhalte betroffen sind, wird es sichtbar.
Die Seite¶

Die Module sind nach Aufgabe gruppiert: Content, Navigation, Media, Gutenberg, Interaction, Performance, Consent, Integration, Marketing, WooCommerce, Site. Diese Gruppennamen sind auch in der deutschen Fassung englisch.
Jede Zeile zeigt drei Dinge:
| Spalte | Inhalt |
|---|---|
| Aktiv | Der Schalter |
| Modul | Name, technischer Slug, Beschreibung, und welche Blöcke das Modul mitbringt |
| Hinweis | Voraussetzungen und Sperrgründe |
Am Ende jeder Gruppe speichert Module speichern die Auswahl. Eine Suche gibt es nicht — die Gruppierung ersetzt sie.
Acht Module fehlen in der Liste¶
Gelistet sind 42 der 50 Module. Die übrigen acht sind als unverzichtbar markiert und deshalb gar nicht aufgeführt — es gibt für sie nichts zu entscheiden:
| Modul | Warum |
|---|---|
general, website, system, utilities, integration |
tragen die Reiter der Theme-Optionen, an die andere Module ihre Felder hängen |
info |
die Seite Theme → Info |
layout-blocks, meta-blocks |
Grundbausteine, auf denen die Templates aufbauen |
Gesperrte Schalter¶
Manche Schalter lassen sich nicht bewegen. Der Grund steht in der Spalte Hinweis.
- Benötigt von: …
- Ein anderes, aktives Modul braucht dieses. Der Schalter ist gesperrt, solange das abhängige Modul läuft. Um ihn freizugeben, schaltet man zuerst das abhängige Modul ab.
- Benötigt: …
- Das Modul braucht ein anderes. Schaltet man es ein, wird die Voraussetzung automatisch mitgeschaltet. Dieser Hinweis sperrt nicht.
Auf einer Installation mit den Standardmodulen sind genau zwei Schalter gesperrt: Loops & Filter und Modal, beide mit dem Hinweis Benötigt von: Search beziehungsweise Benötigt von: Modals, Search.
Die Abhängigkeiten¶
| Modul | braucht |
|---|---|
| Search | Loops & Filter, Modal |
| Modals | Modal |
| Megamenu | Hyperlinks |
| Cookiebot, Google Maps, OpenStreetMap | Integrations |
| Vacation Mode | WooCommerce |
Solange also Search läuft, bleiben Loops & Filter und Modal an und ihre Schalter sind gesperrt.
Module, die sich ausschließen¶
In zwei Gruppen darf nur ein Modul aktiv sein. Schaltet man das zweite ein, geht das erste aus.
| Gruppe | Module | Warum |
|---|---|---|
| Einwilligung | Complianz, Cookiebot | Beide verwalten dieselben Einwilligungen und würden sich gegenseitig überschreiben |
| Karten | Google Maps, OpenStreetMap | Beide beanspruchen den Shortcode [map] |
Diese Entscheidung fällt man einmal am Anfang eines Projekts. Ein Wechsel später bedeutet, die betroffenen Inhalte zu prüfen — vor allem bei den Karten, weil sich die Attribute unterscheiden.
Der Shortcode [map] ist zusätzlich abgesichert
Beide Kartenmodule registrieren [map] nur, wenn er noch frei ist. Selbst
wenn beide Module gleichzeitig geladen würden, gäbe es keinen Konflikt. Die
eindeutigen Aliasse [gmap] und [osm] sind davon nicht betroffen und immer
zuverlässig.
Neu ausgelieferte Module¶
Fehlt ein Modul im gespeicherten Zustand, gilt der Standardwert aus seiner
module.json. Ein Modul, das mit einem Update dazukommt, ist damit automatisch
an, wenn es standardmäßig an ist.
Nach einem Update lohnt daher ein Blick auf die Seite: Es kann etwas dazugekommen sein, das das Projekt nicht braucht.
Welche Module standardmäßig an sind, steht in der Modul-Referenz.
Verwaltung durch einen TWhub¶
Die Modulauswahl kann auch von einem TWhub kommen. Dann steht oben auf der Seite ein blauer Hinweis:
Vom TWhub verwaltet. Aufgeführt sind nur die laufenden Module — die Auswahl trifft der Hub, und der nächste Abgleich überschreibt hier Geändertes. Löse die Website unten, um alle Module lokal zu sehen und zu verwalten.
In diesem Zustand zeigt die Seite nur die laufenden Module. Änderungen vor Ort hätten keinen Bestand, weil die nächste Übertragung aus dem Hub sie überschreibt.
Zurück zur lokalen Verwaltung¶
Die Schaltfläche Vom TWhub lösen löst die Seite vom Hub. Danach erscheint:
Diese Website verwaltet ihre Module jetzt lokal.
Ab dann zeigt die Seite wieder alle Module mit bedienbaren Schaltern. Der zuletzt übertragene Zustand bleibt erhalten — es wird nichts zurückgesetzt.
Das Theme braucht keinen Hub¶
Der Modulzustand steht in einer gewöhnlichen WordPress-Option auf der Seite selbst. Das Theme ruft nirgends nach Hause und prüft keine Lizenz. Es gibt keinen ausgehenden Request.
Ein Hub ist nur einer von drei möglichen Schreibern dieser Option, neben der Admin-Oberfläche und WP-CLI. Fällt er weg, bleibt alles wie es ist und die Seite ist voll bedienbar.
Über die Kommandozeile¶
wp option get twtheme_modules --format=json
wp eval 'twtheme_modules_apply_state(["slider" => false], "cli");'
Nicht mit update_option schreiben
Geschrieben werden darf der Zustand nur über
twtheme_modules_apply_state(). Dort sitzen die Prüfung gegen die Modulliste
und die Auflösung der Abhängigkeiten. Ein direktes update_option() umgeht
beides und kann einen Zustand hinterlassen, in dem ein Modul läuft, dessen
Voraussetzung fehlt.
Prüfen, was läuft¶
Die Seite Theme → Info listet alle Module mit ihrem Zustand auf, dazu die Versionen von Theme, WordPress, PHP und allen Plugins. Am Ende steht ein kopierfertiger Bericht für Supportanfragen — ohne Zugangsdaten und Datenbankdetails.
Siehe Info und Systemcheck.
Weiter¶
- Alle Module im Überblick
- Modul-Vertrag — wie ein Modul aufgebaut ist
- Eigenes Modul — ein neues anlegen