Zum Hauptinhalt springen

Block-Themes sind heute der Standard für neue WordPress-Projekte. Templates bestehen aus Block-Markup statt PHP, das Design wird zentral in theme.json gesteuert.

Aufbau eines Block-Themes

mein-theme/
├── style.css          # Theme-Header
├── theme.json         # Design-Tokens, Einstellungen, Styles
├── templates/         # index.html, single.html, page.html …
├── parts/             # header.html, footer.html
├── patterns/          # PHP-Dateien mit Pattern-Header
└── functions.php      # optional

theme.json als Design-System

theme.json definiert Farbpaletten, Typografie, Abstände und Layoutbreiten und erzeugt daraus CSS Custom Properties (--wp--preset--color--primary). Unter settings wird festgelegt, was Redakteure überhaupt einstellen dürfen.

{
  "version": 3,
  "settings": {
    "color": { "custom": false, "defaultPalette": false,
      "palette": [ { "slug": "primary", "color": "#0b5", "name": "Primär" } ] },
    "typography": { "customFontSize": false },
    "layout": { "contentSize": "720px", "wideSize": "1200px" }
  }
}

Mit custom: false und eigenen Paletten lassen sich Redakteure auf das Corporate Design beschränken, ein wichtiger Hebel für Konsistenz.

Wichtige Konzepte

  • Style Variations in styles/*.json: alternative Designs ohne Code.
  • Section Styles: Block-Stilvarianten, die verschachtelte Blöcke mitstylen.
  • Synced Patterns (früher wiederverwendbare Blöcke) und Pattern Overrides für vorgefertigte, teilweise editierbare Inhalte.
  • Block Bindings API: Blockattribute an Meta-Felder oder eigene Quellen binden, ohne eigenen Block zu bauen.
  • PHP-only-Blöcke (seit 7.0): Einfache dynamische Blöcke ohne JavaScript-Build registrieren.

Wartungsfalle: Änderungen in der Datenbank

Was im Site Editor angepasst wird, landet als wp_template, wp_template_part oder wp_global_styles in der Datenbank und überschreibt die Theme-Dateien. Folgen:

  • Theme-Updates scheinen „nicht zu wirken“.
  • Git-Deployments und Datenbankzustand laufen auseinander.

Lösungen: Anpassungen mit dem Plugin Create Block Theme zurück in die Theme-Dateien exportieren, im Site Editor einzelne Templates „zurücksetzen“, und in Produktion die Bearbeitung von Templates per Rolle einschränken.

Sicherheitsaspekt

Block-Themes enthalten weniger PHP und damit weniger Angriffsfläche als klassische Themes mit Options-Panels. Trotzdem gilt: Patterns sind PHP-Dateien und werden ausgeführt; fremde Pattern-Sammlungen wie Plugins behandeln.

Weiterführende Artikel

Quellen und Dokumentation