Files
WP-LIT-MCP/docs/guides/divi-structure.md
T

3.7 KiB
Raw Blame History

Divi-Seiten: Aufbau lesen

Divi 5 speichert eine Seite als Block-Markup: Abschnitte (section) enthalten Zeilen (row), Zeilen Spalten (column), Spalten Module (text, heading, button, …). Manche Module haben Kind-Module (accordion → accordion-item). Die Divi-Werkzeuge gibt es nur, wenn der Divi-5-Builder aktiv ist.

Seitenbaum

  • lit-divi-outline mit post_id liefert jeden Knoten mit Pfad-ID, Modultyp, Admin-Label, Textauszug, Layout-Info (z. B. Spalten 8_24+16_24), Modul-Preset-Namen und Gruppen-Presets – als kompakten Text (outline, z. B. {Preset: CTA primär} {Gruppen-Presets: font: Button-Schrift; spacing: Abstand Karte}) und als Liste (nodes, dort group_presets mit Einträgen wie "font: Button-Schrift"). Mit id nur ein Teilbaum, mit depth begrenzte Tiefe.
  • Pfad-IDs: s0 = erster Abschnitt, s0.r1 = zweite Zeile darin, s0.r1.c0 = erste Spalte, s0.r1.c0.m2 = drittes Modul, …m2.m0 = erstes Kind-Modul. g = globales Modul, x = fremder Block (z. B. aus dem Block-Editor). Gezählt wird je Buchstabe innerhalb des Elternknotens.
  • lit-divi-node-get mit post_id und id liefert alle Einstellungen eines Knotens (siehe divi-attrs), die aktuellen Kurzform-Werte (shortform), die Gruppen-Presets (group_presets: je Gruppe group_id, group und die Presets mit id und name) und die IDs der Kinder.

Stand und Sperre

  • tree_rev ist der Stand des Seiteninhalts. Pfad-IDs gelten nur für diesen Stand – ändert jemand die Seite (auch im Divi-Builder), verschieben sich die IDs. Divi-Änderungen verlangen deshalb immer die tree_rev des letzten Lesevorgangs.
  • rev ist davon getrennt: der Stand des ganzen Eintrags (Titel, Auszug, Status …) für lit-content-update.

Ändern

Neue Inhalte und Änderungen: siehe divi-shortform (Kurzform, lit-divi-insert, lit-divi-update, lit-divi-move, lit-divi-delete), divi-attrs (Vollform) und divi-placeholders. Ablauf:

  1. lit-divi-outline lesen (liefert tree_rev), lit-divi-design-system für Farben, Variablen, Presets.
  2. Änderung mit dieser tree_rev senden. Die Antwort enthält die neue tree_rev und die neuen Pfad-IDs – damit direkt weiterarbeiten, ohne erneut zu lesen.
  3. rev_mismatch: jemand hat die Seite inzwischen geändert (z. B. im Divi-Builder) → neu lesen.
  4. Zum Schluss lit-page-render-summary prüfen und dem Nutzer die Vorschau (preview_url) bzw. den Divi-Builder (edit_url) nennen. Der Status bleibt unverändert; veröffentlichte Seiten werden live geändert (vorher entsteht eine Revision, revision_id).

Was nicht bearbeitet wird

  • Knoten mit „nur lesbar“ (globale Module g…, fremde Blöcke x…) lassen sich nur als Ganzes verschieben, duplizieren oder löschen. Globale Module zeigt die Übersicht mit [global <ID>]: ihren Inhalt im Bibliothekseintrag ändern (lit-divi-outline mit post_id = ID; Ablauf mit Probelauf und confirm siehe lit-guide topic divi-library). lit/divi-replace-text ändert sie nicht, sondern nennt sie in skipped_nodes.
  • Divi-4-Inhalt (Shortcodes [et_pb_…]) wird nicht gelesen oder geändert: Seite einmal im Divi-Builder öffnen und speichern, Divi 5 wandelt sie dabei um.
  • Ist das Markup beschädigt, lehnen die Werkzeuge ab (unsupported); die Seite im Divi-Builder öffnen und speichern.

Ergebnis prüfen

lit-page-render-summary rendert den Inhaltsbereich wie im Frontend und listet Überschriften, Texte, Links und Bilder samt Warnungen (Sprünge in der Überschriftenhierarchie, fehlende Alt-Texte, Links ohne Ziel). Header, Footer und Theme-Builder-Vorlagen sind nicht enthalten; globale Module ebenfalls nicht (über die Schnittstelle rendert Divi sie nicht) – notes nennt sie mit ihrer ID.