Candidates come from one ID/status/type query: content with globalModule, global_module or a JSON-escaped letter. Their content is read in chunks of 50 and parsed by UsageMatcher: Divi 5 openers are json-decoded (escaped keys and values, leading zeros, any depth), and Divi 4 global_module attributes are read in any quoting. An undecodable escaped opener counts as a possible reference. Beyond 5000 candidates the rest count unread. The guide names the formats and the wp_block parity. Also fixes the grammar of the blocked-hidden count. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
9.4 KiB
Divi-Bibliothek und globale Module
Die Divi-Bibliothek speichert Layouts, Abschnitte, Zeilen und Module zur Wiederverwendung.
- Normale Einträge werden beim Einfügen kopiert; die Kopie ist danach unabhängig.
- Globale Einträge werden als Instanz eingefügt. Divi zeigt überall den aktuellen Inhalt des Bibliothekseintrags: eine Änderung dort wirkt sofort auf allen Seiten mit diesem Modul – auch auf veröffentlichten.
Werkzeuge
lit/library-list(übermcp-adapter-execute-ability): Einträge auflisten, Filterlayout_type(layout,section,row,module),scope(normal,global),search(Titel),category(Name), weiterblättern mitcursor. Gelistet werden nur Einträge, die das Konto bearbeiten darf. Mitid: ein Eintrag im Detail – Knoten-Übersicht (outline),tree_revund die Seiten, die auf ihn verweisen (affected,affected_count,hidden_count). Gezählt wird jeder Verweis, den Divi darstellt: Divi-5-Instanzen in jeder Schreibweise und Divi-4-Shortcodes mitglobal_module; ein Verweis, der sich nicht eindeutig lesen lässt, zählt vorsichtshalber mit. Steckt der Eintrag in einem wiederverwendbaren Block (wp_block), erscheint dieser Block in der Liste, nicht die Seite, die ihn einbettet – wie bei Divi selbst.lit-library-insert: einen Eintrag in eine Divi-Seite einfügen.mode: "global"(Standard bei globalen Einträgen) fügt eine verknüpfte Instanz ein,mode: "copy"(Standard sonst) eine unabhängige Kopie. Position wie beilit-divi-insert(parent,before,after, ohne Angabe ans Seitenende);tree_revder Zielseite ist Pflicht. Die Kopie eines globalen Eintrags ist vollständig gelöst (auch darin enthaltene globale Module); in der Kopie eines normalen Eintrags bleiben globale Module verknüpft.mode: "global"geht nur bei globalen Einträgen mit genau einem Abschnitt, einer Zeile oder einem Modul ohne globale Module darin – sonstmode: "copy"verwenden. Nur aktive Einträge (nicht im Papierkorb) lassen sich einfügen.lit/library-save: einen Abschnitt, eine Zeile oder ein Modul als neuen Eintrag speichern (post_id,tree_rev, Pfad-IDid,title,scope: "normal"oder"global", vorhandenecategories/tags). Der Knoten auf der Seite bleibt eine eigenständige Kopie – um ihn zu verknüpfen, ihn durch eine Instanz ersetzen (siehe Ablauf unten). Ein Knoten, der selbst ein globales Modul ist oder eines enthält, lässt sich nicht als globaler Eintrag speichern.lit/divi-node-copy: einen Knoten von einem Eintrag an eine Position eines anderen kopieren (source_post_id,source_id,source_tree_revauslit-divi-outlineder Quelle – Pflicht, weil Pfad-IDs nur für diesen Stand gelten; Ziel mitpost_id,tree_rev, Position). Quelle und Ziel dürfen Seiten oder Bibliothekseinträge sein. Die Kopie ist byte-gleich; globale Module bleiben verknüpft. Aus einem Bibliothekseintrag zu kopieren ist Einfügen aus der Bibliothek: es braucht dieselben Rechte und Freigaben wielit-library-insert.- Die Divi-Werkzeuge arbeiten auch auf Bibliothekseinträgen:
lit-divi-outline,lit-divi-node-get,lit-divi-insert,lit-divi-update,lit-divi-move,lit-divi-delete,lit/divi-duplicate-nodeundlit/divi-replace-textmit der ID des Eintrags alspost_id.
Globale Module erkennen und ändern
- In
lit-divi-outlineeiner Seite erscheinen Instanzen als z. B.g0 section "Kontakt" [global 1058] (nur lesbar);lit-divi-node-getnennt unterglobaldie ID des Bibliothekseintrags. Auf der Seite lassen sie sich nur als Ganzes verschieben, duplizieren oder löschen. lit-divi-outlinemitpost_id= ID des Eintrags lesen und die Änderung wie auf einer Seite senden.- Ohne
confirmist jede Änderung eines globalen Eintrags ein Probelauf – ebenso bei einem normalen Eintrag, den Seiten als globales Modul zeigen (Divi zeigt dort dessen aktuellen Inhalt): Antwortconfirm_requiredmitaffected(betroffene Seiten, höchstens 50),affected_count(alle) undhidden_count(Seiten, die das Konto nicht lesen darf – sie werden nur gezählt, ohne ID); gespeichert wird nichts. - Dem Nutzer die betroffenen Seiten nennen und fragen. Erst nach Zustimmung dieselbe Änderung mit
confirm: truewiederholen (beilit-divi-deletegilt dasselbeconfirm). - Vorher entsteht eine Revision des Eintrags (
revision_id); sind Revisionen abgeschaltet, eine Sicherungskopie im Papierkorb (backup_id). Schlägt das Speichern danach fehl, nennt der Fehler diebackup_id. Nach dem Speichern wird Divis CSS-Cache für alle Seiten geleert.
Die Bestätigung wird abgelehnt (forbidden), wenn das Konto einen veröffentlichten, privaten oder geplanten
Eintrag, der das Modul zeigt, nicht bearbeiten darf – schon der Probelauf warnt davor und nennt diese IDs in
blocked_ids, nicht lesbare nur als Anzahl in blocked_hidden_count (Entwürfe blockieren nicht).
Theme-Builder-Layouts (Header, Body, Footer, Vorlagen) blockieren außerdem, wenn die Divi-Rolle des Kontos
„Theme Builder“ nicht erlaubt. Zeigen
mehr als 2000 veröffentlichte, private oder geplante Einträge das Modul, lehnt LIT MCP die Bestätigung ab
(unsupported); solche Einträge im Divi-Builder bearbeiten. Sind Revisionen für die Bibliothek abgeschaltet, lehnt das
Werkzeug die Änderung außerdem ab (unsupported), wenn der Papierkorb deaktiviert ist oder das Konto kein
unfiltered_html hat (die Sicherungskopie wäre dann nicht verlustfrei).
lit/divi-replace-text nimmt Bibliothekseinträge als targets (ID und tree_rev aus lit-divi-outline;
der Probelauf listet nur Seiten des Inhaltstyps): normale Einträge werden gespeichert, globale (und normale,
die Seiten als globales Modul zeigen) nie – ihr
Ergebnis nennt stattdessen die betroffenen Seiten; die Änderung dann nach Rückfrage mit lit-divi-update
und confirm: true vornehmen.
Regeln für Bibliothekseinträge: ein Abschnitts-, Zeilen- oder Modul-Eintrag behält genau einen Knoten dieses Typs (die Instanzen auf den Seiten erwarten ihn); ein Layout-Eintrag enthält nur Abschnitte; kein Eintrag wird leer; ein globaler Eintrag enthält keine globalen Module. Nur aktive Einträge lassen sich ändern.
lit-page-render-summary zeigt globale Module nicht (über die Schnittstelle rendert Divi sie nicht) und nennt
sie in notes; ihren Inhalt mit lit-divi-outline und der ID lesen.
Rechte
- WordPress: die Bibliothek nutzen = Beiträge bearbeiten dürfen; einen Eintrag lesen oder ändern = diesen Eintrag bearbeiten dürfen; neue Einträge anlegen = Beiträge veröffentlichen dürfen (Bibliothekseinträge sind immer aktiv).
- Divi → Rollen-Editor: „Divi-Bibliothek“, „In der Bibliothek speichern“ (anlegen und ändern), „Aus der
Bibliothek hinzufügen“ (einfügen), „Globale Bibliothekselemente bearbeiten“ (globale Einträge anlegen und
ändern). Fehlt „Divi-Bibliothek“, gilt jeder Eintrag als nicht vorhanden (
not_found) und die Liste antwortet mitforbidden; fehlt eines der anderen, antwortet das Werkzeug mitforbiddenund diesem Hinweis. - Einstellungen → LIT MCP → Tools: Gruppe „Divi-Bibliothek“ auf „nur lesen“ sperrt jeden Schreibzugriff auf
Bibliothekseinträge, auch über die Divi-Werkzeuge; deaktiviert gilt jeder Eintrag als nicht vorhanden.
Grenze: Die Einträge selbst sind dann nicht lesbar und nicht änderbar, aber
lit-divi-outline,lit-divi-node-getundlit-page-render-summaryeiner Seite nennen die ID eines dort verwendeten globalen Moduls weiterhin (auch ohne das Recht „Divi-Bibliothek“). Diese ID mit den Divi-Werkzeugen zu öffnen, antwortetnot_found; dann nicht weiter versuchen.lit-library-insertundlit/divi-node-copysind außerdem gesperrt, wennlit-divi-insertgesperrt ist;lit/divi-node-copymit einem Bibliothekseintrag als Quelle auch, wennlit-library-insertgesperrt ist. - Ohne das Recht
unfiltered_htmlüberträgt LIT MCP beim Kopieren, Einfügen und Speichern (lit/divi-node-copy,lit-library-insert,lit/library-save) nur Knoten, die das Konto auch selbst schreiben dürfte. Abgelehnt werden – „nur im Divi-Builder“ – Knoten mit eigenem HTML, CSS oder HTML-Attributen, Interaktionen, einer Lottie-Quelle, dem Code-Modul, fremden Blöcken oder Freitext zwischen den Blöcken, Text mit HTML, das der HTML-Filter von WordPress verändern würde, und$variable-Verweisen, die die normale Prüfung nicht bestehen (z. B. HTML davor/danach). Das ist strenger als Divi selbst; die Antwort nennt jede Fundstelle (validation_failed), gespeichert wird nichts. Relative Links (kontakt/,/pfad,#anker) bleiben kopierbar.
Ablauf: globale Module vorschlagen
- Die Seiten lesen (
lit-divi-outline) und wiederkehrende Abschnitte suchen (gleiche Admin-Labels oder Texte, z. B. Kontakt, Öffnungszeiten, Call-to-Action). - Dem Nutzer vorschlagen, welche davon globale Module werden sollen, und erklären: eine Änderung wirkt danach auf allen Seiten.
- Nach Zustimmung den Abschnitt einer Seite mit
lit/library-saveundscope: "global"speichern. - Auf jeder Seite (auch der ersten) die Instanz mit
lit-library-insertdirekt vor dem bisherigen Abschnitt einfügen und den bisherigen Abschnitt nach Rückfrage mitlit-divi-deleteentfernen. - Den Nutzer bitten, das Ergebnis im Divi-Builder anzusehen.
Unterscheiden sich die Abschnitte in Details, vorher mit dem Nutzer klären, welche Fassung gilt.