A row inside a column is labelled "<Abschnitt> – Zeile (innen)" instead of repeating its outer row's "<Abschnitt> – Zeile". Guide updated. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
7.3 KiB
Divi-Kurzform
Neue Divi-Inhalte beschreibt man als JSON-Knoten. lit-divi-insert (in nodes) und lit-content-create (in
divi) nehmen dieselbe Form. Jeder Knoten hat einen type; dazu Kurzform-Felder, optional label
(Admin-Label), preset (Name eines Modul-Presets aus lit-divi-design-system) und attrs (Vollform, siehe
divi-attrs). Kurz- und Vollform lassen sich kombinieren, aber nicht für denselben Pfad (dann Fehler
validation_failed mit dem Pfad).
Aufbau
{ "type": "section", "label": "Hero", "background_color": "{{color:primary}}",
"rows": [
{ "columns": "1_3,2_3",
"modules": [
[ { "type": "image", "image_id": 33 } ],
[ { "type": "heading", "text": "Willkommen", "level": "h1" },
{ "type": "text", "content": "<p>Seit 1987 in Köln.</p>" },
{ "type": "button", "text": "Termin buchen", "url": "/kontakt", "preset": "CTA primär" } ]
] }
] }
- Abschnitt (
section):rows(Zeilen) oder – für eine einspaltige Zeile – direktmodules;section_type: "fullwidth"für Vollbreite-Abschnitte (dann nurfullwidth-…-Module inmodules);background_color. Spezialabschnitte (specialty) nur im Divi-Builder bauen. - Zeile (
row):columns= Breiten als Brüche, die zusammen 1 ergeben ("4_4","1_2,1_2","1_3,2_3","1_4,1_4,1_2", auch1_5,2_5,3_5wie im Divi-Builder –4_5nicht);modules= je Spalte eine Liste (bei einer Spalte reicht eine einfache Liste). - Module mit Kind-Modulen (Akkordeon, Tabs, Slider, Kontaktformular, Karte, Social-Media-Follow,
Icon-Liste) bekommen ihre Einträge in
items; der Eintragstyp ergibt sich von selbst. labelfehlt → Admin-Label „ – “, z. B. „Hero – Button“; Zeilen „Hero – Zeile“, eine Zeile in einer Spalte „Hero – Zeile (innen)“. Abschnitten deshalb ein Label geben.headingohnelevelwirdh2(eine Seite hat meist schon eineh1im Titel).
Kurzform-Felder
| Modul | Felder |
|---|---|
text |
content (HTML) |
heading |
text, level (h1–h6) |
button |
text, url, new_window (true/false) |
image |
image_id (Mediathek, setzt URL/ID/Alt), src, alt, title, url |
blurb |
title, url, content, image_id, src, alt, level |
cta |
title, content, button_text, button_url |
icon |
url, title |
divider |
show, color |
testimonial |
author, job_title, company, company_url, content, portrait_id, portrait_url |
team-member |
name, position, content, image_id, image_url |
accordion → accordion-item |
Eintrag: title, content, open |
tabs → tab |
Eintrag: title, content |
toggle |
title, content, open |
gallery |
image_ids (Liste von Anhang-IDs) |
slider → slide |
Eintrag: title, content, button_text, button_url, image_id, src, alt |
contact-form → contact-field |
Formular: title, email, success_message, submit_text; Feld: title, id, type (input, email, text, checkbox, radio, select), required |
map → map-pin |
Karte: address, lat, lng, zoom; Pin: title, content, address, lat, lng |
video |
src, thumbnail |
number-counter |
number, title, percent |
social-media-follow → social-media-follow-network |
Eintrag: network (z. B. facebook), url, label |
icon-list → icon-list-item |
Eintrag: text |
code |
content – nur, wenn kein natives Modul passt (Warnung) |
Alle anderen Module (siehe lit-divi-catalog) gehen über attrs. Die Kurzform-Felder eines Moduls samt Pfad
zeigt lit-divi-catalog mit module.
Zwei Felder heißen wie Knoten-Schlüssel und lassen sich deshalb beim Einfügen nicht in Kurzform setzen:
type des Kontaktformular-Felds (type ist dort der Modultyp) und label des Social-Media-Netzwerks (label
ist dort das Admin-Label). Beim Einfügen über attrs (fieldItem.advanced.type bzw.
socialNetwork.innerContent mit label) setzen, danach auch mit lit-divi-update über set
({"set": {"type": "email"}}).
Einfügen, ändern, verschieben, löschen
lit-divi-insert:nodes+ Position –parent(Pfad-ID, z. B. Spaltes0.r0.c1; optionalindex),beforeoderafter; ohne Position ans Seitenende. Oben auf der Seite sind nur Abschnitte erlaubt, in Abschnitten Zeilen, in Spalten Module.lit-divi-update:changes=[{"id": "s0.r0.c1.m2", "set": {"text": "Jetzt buchen"}, "preset": "CTA primär", "label": "Hero – Button"}]– mehrere Knoten in einem Aufruf;nullentfernt einen Wert. Denselben Pfad nicht zugleich übersetundattrsändern (dann zwei Änderungen senden).lit-divi-move:id+ Position (auch in andere Zeilen oder Abschnitte).lit-divi-delete:ids, erst nach Rückfrage mitconfirm: true.lit/divi-duplicate-node: Kopie direkt hinter dem Original.- Jede Antwort enthält die neue
tree_rev(für die nächste Änderung),changedmit den neuen Pfad-IDs, den betroffenen Abschnitt alsoutline,warnings(Qualität, siehe unten) undrevision_id.
Fehler: validation_failed bzw. invalid_attr_path mit fields (Eingabepfad → Problem, z. B.
nodes[0].rows[0].columns); dann wurde nichts gespeichert.
Spaltenbreiten ändern
Die Breite einer Spalte steht in module.decoration.sizing (Desktop: flexType, z. B. 8_24 = 1/3). Wer
diesen Desktop-Wert über attrs ersetzt, ersetzt das ganze Objekt: flexType immer mitschicken, sonst fällt
die Breite weg. Erlaubt sind je Breakpoint (Desktop, Tablet, Telefon, …) nur die Spaltenklassen des
Divi-Builders: 1_24 … 24_24, 1_5, 2_5, 3_5, 1_7, 1_9, 1_10, 1_11 oder none. In einer Zeile
mit festen Breiten alle Spalten zusammen ändern (Summe 1). Die Angabe
flexColumnStructure der Zeile (Spaltenvorlage im Divi-Builder) passt das Werkzeug nicht an; nach einer
Breitenänderung zeigt der Builder dort evtl. noch die alte Vorlage; gespeichert sind die neuen Breiten (bei
Bedarf die Vorlage im Builder neu wählen).
Sicherheit und Speichern
Alle Werte werden vor dem Speichern bereinigt: Texte ohne HTML, Rich-Text ohne unfiltered_html nur mit dem
HTML, das WordPress in Beiträgen erlaubt, Links ohne javascript:.
$variable-Verweise werden geparst, geprüft und vom Plugin neu erzeugt. Eigenes HTML, CSS und HTML-Attribute eines Moduls (…decoration.attributes, …advanced.html,
…css…) ändert nur, wer das Recht unfiltered_html hat – sonst „nur im Divi-Builder“. Unberührte Teile der
Seite bleiben byte-identisch; Ausnahme: Divi selbst normalisiert Seiten mit eigenen HTML-/Attribut-Feldern
beim Speichern – nur wenn die Seite noch nicht in Divis eigener gespeicherter Form vorliegt (z. B. importierter oder direkt in die Datenbank geschriebener Inhalt); über den Divi-Builder oder LIT MCP gespeicherte Seiten betrifft das praktisch nie (dann Warnung, dass der Inhalt beim Speichern verändert wurde – mit der neuen tree_rev
weiterarbeiten).
Warnungen
Neue oder geänderte Knoten werden geprüft: feste Farben/Schriften, obwohl eine passende globale existiert; Bilder ohne Alt-Text; leere Module; Sprünge in der Überschriftenhierarchie; Code-Modul. Warnungen dem Nutzer nennen und möglichst gleich beheben.