lit/revision-restore takes only content types, so a write to a library entry or a Theme Builder layout now answers with restore_url (wp-admin revision.php for its revision_id), also per page in lit/divi-replace-text. The guides and readme no longer present lit/revision-restore as the way back for these types. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
9.1 KiB
Divi Theme Builder
Der Theme Builder legt fest, wie Kopfzeile, Inhalt und Fußzeile für bestimmte Seiten aussehen – z. B. für alle Einträge eines eigenen Inhaltstyps. Eine Vorlage hat Bedingungen („gilt für alle Personen“) und bis zu drei Layouts (Kopfzeile, Inhalt, Fußzeile). Die Standardvorlage gilt überall, wo keine andere greift; ihre Kopf- und Fußzeile heißen „global“, weil andere Vorlagen sie mitbenutzen.
Grundregel: nichts wird ohne Freigabe sichtbar
- Neue Vorlagen legt LIT MCP immer deaktiviert an – Besucher sehen nichts davon.
- Aktivieren und Deaktivieren gibt es nur mit
lit/tb-activate, und immer so: Probelauf (Bedingungen, Layouts, andere aktive Vorlagen mit denselben oder verwandten Bedingungen unteroverlaps/possible_overlaps) → Nutzer fragen → dieselbe Anfrage mitconfirm: true. - Auch alles andere, was Besucher sofort sähen, ist zuerst ein Probelauf (
confirm_required) und brauchtconfirm: true: Bedingungen einer aktiven Vorlage ändern (lit/tb-assign) und ein Layout ändern, das eine aktive Vorlage zeigt (dielit-divi-…-Werkzeuge; die Antwort nennt die Vorlagen untertemplates, solche ohne Berechtigung nur als Anzahlhidden_templates). Vor dem Speichern eines sichtbaren Layouts entsteht eine Revision (wiederherstellbar überrestore_url, siehe „Rückgängig machen“); sind Revisionen abgeschaltet, eine Sicherungskopie im Papierkorb (backup_id). lit/divi-replace-textändert sichtbare Layouts nicht; solche Änderungen mitlit-divi-updateundconfirm: truevornehmen.- Die Standardvorlage ändert LIT MCP nicht (nur im Theme Builder).
Werkzeuge (über mcp-adapter-execute-ability)
lit/tb-list: alle Vorlagen mitenabled,live(für Besucher wirksam), Bedingungen (use_on,exclude_fromund Beschriftungen), Layouts (id, Titel,shared_with= andere Vorlagen mit demselben Layout) undtemplate_rev.template_id: nur diese Vorlage.conditions: trueliefert alle Bedingungen, die Divi anbietet; eine ID, die auf „:“ endet, braucht ein Objekt am Ende, z. B.singular:post_type:page:id:42.detachedzeigt Vorlagen, die ein Speichern im Theme Builder entfernt hat (siehe unten);draft_pendingzeigt ungespeicherte Änderungen im Theme Builder.lit/tb-create-template:title, je Bereich (header,body,footer)source:"new"(neues Layout; optionalnodeswie beilit-divi-insertundtitle),"global"(Kopf-/Fußzeile der Standardvorlage mitbenutzen; nicht fürbody),"default"(nichts Eigenes, Standard bei fehlender Angabe) oder"hidden"(Bereich ausblenden). Optionaluse_on/exclude_from. Alles oder nichts: schlägt ein Schritt fehl, entfernt LIT MCP alles wieder. Antwort:template_id,template_rev,enabled: false,layouts.lit/tb-assign: Bedingungen ersetzen (template_id,template_rev,use_on). Fehltexclude_from, bleiben die bisherigen Ausnahmen;[]entfernt sie. Der Probelauf einer aktiven Vorlage zeigt vorher/nachher (before,after) und Überschneidungen. Die Antwort nennt die bisherigen Bedingungen unterprevious.lit/tb-activate:enabled: trueoderfalse(template_id,template_rev). Deaktivieren ist der schnelle Weg zurück. Zum Aktivieren müssen alle Layouts der Vorlage noch aktiv sein.- Layouts bearbeiten:
lit-divi-outline,lit-divi-node-get,lit-divi-insert,lit-divi-update,lit-divi-move,lit-divi-delete… mit der Layout-ID alspost_id(auslit/tb-list). Benutzt eine andere Vorlage dasselbe Layout (shared_with), wirkt die Änderung auch dort. Das Modul „Beitragsinhalt“ (post-content) gibt es nur im Inhalt-Layout, nicht in Kopf- oder Fußzeile.
Bedingungen
Erlaubt sind nur die Bedingungen, die Divi selbst anbietet (lit/tb-list mit conditions: true), höchstens 50
je Liste. Ein Objekt am Ende (Seite, Beitrag, Begriff, Person) muss existieren und für das Konto lesbar bzw.
zuweisbar sein; sonst lautet die Antwort wie bei einer unbekannten ID. Bedingungen für Autoren
(archive:user:id:…) verlangen das Recht, Benutzer aufzulisten (list_users) – strenger als Divi.
Felder im Inhalt-Layout (Dynamic Content)
Im Inhalt-Layout zeigen Platzhalter die Daten des jeweiligen Eintrags: {{post:title}}, {{post:excerpt}},
{{post:date}} und Felder als {{field:<Schlüssel>}}. Welche Felder ein Inhaltstyp hat und welche Divi als Text
zeigt, liefert lit/divi-dynamic-sources mit post_type. Nur textartige Felder eignen sich: Bei Auswahlfeldern
zeigt Divi den gespeicherten Wert, nicht die Beschriftung; Beziehungs- und Dateifelder zeigen nur IDs, Pods mit
Tabellen-Speicherung gar nichts.
LIT MCP prüft die Felder eines geänderten Inhalt-Layouts gegen die Inhaltstypen aus den Bedingungen
(singular:post_type:<typ>:…) der Vorlagen, die das Layout benutzen, und warnt (warnings) – gespeichert wird
trotzdem. Das gilt für die Kurzform {{field:…}} und für Felder, die im Divi-Builder über „Benutzerdefiniertes
Feld“ gewählt wurden. Bei einem sichtbaren Layout stehen die Warnungen schon im Probelauf. Ohne solche Bedingung
bleiben die Felder ungeprüft (die Antwort sagt das). Kopf- und Fußzeile werden nicht geprüft.
Wenn der Theme Builder gerade offen ist
- Hat der Theme Builder ungespeicherte Änderungen (Entwurf,
draft_pending), lehnenlit/tb-create-template,lit/tb-assignund das Aktivieren ab: erst dort speichern oder verwerfen. - Deaktivieren (
lit/tb-activatemitenabled: false) geht immer – auch dann, und auch bei einer aktiven Vorlage im Papierkorb. Die Antwort warnt: Speichert jemand ein offenes Theme-Builder-Fenster, kann Divi seinen eigenen Stand wiederherstellen; danach mitlit/tb-listprüfen. - Speichert jemand in einem Theme-Builder-Fenster, das vor dem Anlegen einer Vorlage geöffnet wurde, entfernt
Divi die neue Vorlage wieder aus der Liste und löscht sie 7 Tage später.
lit/tb-listzeigt sie dann unterdetached(mitmarked_unused). Nur auf ausdrücklichen Wunsch:lit/tb-assignmitreattach: trueordnet sie wieder zu – immer deaktiviert, und nur, wenn ihre Layouts noch aktiv sind.
Rechte
- WordPress: „Beiträge anderer bearbeiten“ (
edit_others_posts) und „Design bearbeiten“ (edit_theme_options); je Vorlage und Layout das Recht, sie zu bearbeiten; zum Anlegen zusätzlich „veröffentlichen“ (Divi legt Vorlagen und Layouts sofort aktiv an). - Divi → Rollen-Editor: „Theme Builder“ – standardmäßig nur für Administratoren.
- Fehlt eines davon, gibt es für dieses Konto keine Vorlagen und Layouts (
not_foundwie bei einer unbekannten ID bzw.forbidden). Vorlagen, die das Konto nicht bearbeiten darf, erscheinen nirgends; aktive davon nur als Anzahl (hidden_liveinlit/tb-list,hidden_overlapsim Probelauf,hidden_templatesbeim Ändern eines Layouts). - Einstellungen → LIT MCP → Tools: Gruppe „Divi Theme Builder“ auf „nur lesen“ sperrt jedes Schreiben, auch über
die
lit-divi-…-Werkzeuge; deaktiviert gibt es keine Vorlagen und Layouts.
Globale Module im Theme Builder
lit/library-make-global wandelt keine Knoten in Theme-Builder-Layouts um. Stattdessen den Abschnitt mit
lit/library-save (scope: "global") speichern und mit lit-library-insert (mode: "global") einfügen
(lit-guide topic divi-library).
Rückgängig machen
Vorlagen haben keine Revisionen: lit/tb-assign nennt die bisherigen Bedingungen (previous), lit/tb-activate
schaltet zurück; jede Änderung steht im Protokoll. Layouts erhalten wie Divi-Seiten eine Revision (revision_id),
aber lit/revisions-list und lit/revision-restore gelten nur für Seiten, Beiträge und andere Inhaltstypen,
nicht für Theme-Builder-Layouts: Die Antwort nennt deshalb restore_url, den Revisionsvergleich in WordPress,
in dem der Nutzer die Revision wiederherstellt. Schneller Weg zurück bei einem sichtbaren Layout: die Vorlage mit
lit/tb-activate (enabled: false) ausblenden. Neu angelegte Vorlagen im Divi Theme Builder löschen.
Ablauf: Vorlage für einen Inhaltstyp (custom-post-type-vorlage)
- Inhaltstyp und Felder klären:
lit-content-types, dannlit/divi-dynamic-sourcesmitpost_type. lit/tb-listlesen: gibt es schon eine Vorlage für den Typ? Gibt es eine globale Kopf-/Fußzeile?- Mit dem Nutzer den Aufbau abstimmen (welche Felder, welche Reihenfolge, Kopf-/Fußzeile global oder eigen).
lit/tb-create-templatemituse_on: ["singular:post_type:<typ>:all"],header/footermeist{"source": "global"},bodymitsource: "new"undnodes(Überschrift{{post:title}}, Texte mit{{field:…}}, das Modulpost-content, wenn der Eintrag eigenen Inhalt hat). Warnungen zu Feldern beachten.- Das Inhalt-Layout bei Bedarf mit
lit-divi-outline/lit-divi-updateverfeinern (Layout-ID alspost_id; solange die Vorlage deaktiviert ist, ohne Probelauf). - Den Nutzer bitten, die Vorlage im Theme Builder anzusehen (Vorschau eines Eintrags ist erst nach dem Aktivieren möglich).
- Erst auf ausdrücklichen Wunsch:
lit/tb-activatemitenabled: true– Probelauf zeigen, dannconfirm: true.