Files
WP-LIT-MCP/docs/guides/divi-structure.md
T
janniclas.loosenandClaude Opus 5.5 10c98cd3c6 docs: Divi guides shortform/placeholders, hints name the write tools; test: Divi write end-to-end; version 0.3.0
- Hints (PostPresenter::DIVI_NOTE, outline, catalog) and server instructions (tree_rev rule)
  name the Divi write tools; guides divi-shortform and divi-placeholders, additions to
  divi-structure, divi-attrs, overview (tool groups, 'nur lesen'), workflows, content-types.
- D7 wording and the S7 exception in readme, guides and spec 1.3/5.2; readme 0.3.0.
- ToolNamingTest: every referenced guide topic exists; overview lists exactly the topics.
- tests/Integration/divi-write-smoke.sh: all write tools via OAuth, editor without
  unfiltered_html with benign probes (S6), Divi's own save filters on the new fixture
  synthetic-divi-filters.html (S7); admin-render.php accepts the new wrap class.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
2026-09-26 17:13:59 +02:00

3.2 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) und Preset-Namen – als kompakten Text (outline) und als Liste (nodes). 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) 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; ihr Inhalt wird im Divi-Builder bearbeitet (globale Module folgen später). 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.