WordPress-Entwickler haben mehr Kontrolle als je zuvor, da sich das WordPress-Ökosystem ständig weiterentwickelt. Full Site Editing (FSE) ebnet allen Nutzern den Weg, ein Theme von Grund auf zu erstellen, vor allem wenn sie die Datei theme.json verwenden.

Entwickler können auch die Datei theme.json nutzen. Mit dieser Konfigurationsdatei kannst du dein WordPress-Theme detailliert anpassen, ohne dass du dich mit den komplizierten Programmiersprachen auseinandersetzen musst.

In diesem umfassenden Leitfaden erfahren wir, was die theme.json Datei zu bieten hat und wie sie mit der vollständigen Bearbeitung der Website zusammenhängt. Am Ende wirst du wissen, wie du ihre Fähigkeiten nutzen kannst, um moderne, leistungsfähige Websites zu erstellen, unabhängig von deinen Entwicklungsfähigkeiten.

Einführung in die Datei theme.json

Im Kern ist theme.json eine Konfigurationsdatei, die die Einstellungen und Stile für dein WordPress-Theme definiert. Sie verwendet die JavaScript Object Notation (JSON), also strukturierte Daten, die die Schlüssel-Wert-Paare der übergeordneten Sprache erben, damit du deinen Code schreiben kannst.

Ein JSON-Code-Ausschnitt, der eine Glossarstruktur definiert. Er enthält einen Eintrag für SGML (Standard Generalized Markup Language) mit Details wie dem Akronym, der Abkürzung, der Definition und verwandten Begriffen.
Beispiel JSON-Code

Die Datei theme.json ist der Schlüssel für die Kontrolle über verschiedene Aspekte deines Themes. Dazu gehören Farbpaletten, Typografie-Einstellungen, Layout-Optionen, Stile pro Block, benutzerdefinierte CSS-Eigenschaften und vieles mehr. Wir werden diese Aspekte im Laufe des Artikels genauer erläutern.

Das hört sich zwar noch nicht so revolutionär an, aber theme.json ist wichtig für die Zukunft der WordPress-Entwicklung. Der nächste Abschnitt erklärt, warum.

Warum theme.json für die WordPress-Theme-Entwicklung wichtig ist

Die typische Herangehensweise von WordPress an die Theme-Entwicklung und die Erstellung von Plugins dreht sich oft um die Bearbeitung von Vorlagendateien mit PHP, die Verwendung der Datei functions.php und andere technische Aufgaben.

Die Datei theme.json stellt eine bedeutende Veränderung dar, insbesondere für die Entwicklung von Themes. Hierfür gibt es einige Gründe:

  • Die Datei stellt einen einzigen, organisierten Ort dar, an dem du die Einstellungen und Stile deines Themes definieren kannst. Dadurch werden die verstreuten CSS- und PHP-Dateien überflüssig.
  • Dieser zentrale Ansatz der Deklaration von Stilen und Einstellungen in theme.json bedeutet, dass WordPress effizienteres CSS generieren kann. Im Vergleich zur Verwendung eines Frameworks wie jQuery ist eine Leistungssteigerung möglich.
  • Du hast mehr Kontrolle über das Styling deiner Website und einzelner Blöcke als je zuvor. Dadurch wird die Themeentwicklung für Nutzer/innen mit weniger technischem Wissen demokratisiert.
  • Mit der Weiterentwicklung von FSE wird die Datei theme.json eine entscheidende Rolle dabei spielen, wie Themes, globale Stile und der Blockeditor zusammenspielen.

Die Kombination all dieser Aspekte führt zu einer standardisierten Methode, um Einstellungen und Stile für dein Theme zu definieren. Wer verschiedene Themes verstehen und mit ihnen arbeiten möchte, kann mit theme.json robustere, flexiblere und benutzerfreundlichere WordPress-Themes erstellen. Noch besser ist, dass diese Kreationen mit der zukünftigen Ausrichtung der Plattform übereinstimmen.

Wo du die Datei theme.json findest

Zunächst einmal wirst du in „traditionellen“ oder „klassischen“ Themes keine theme.json Datei finden. Um diese Datei zu finden und zu nutzen, brauchst du ein eigenes Block-Theme. Abgesehen davon kannst du die Datei in jedem Theme erstellen, solange du WordPress 5.8 oder höher verwendest.

Der typische Speicherort für die Datei theme.json befindet sich in wp-content/themes/[dein-theme]. Wenn die Datei dort nicht zu finden ist, solltest du deinen bevorzugten Code-Editor öffnen und die Datei wie erforderlich erstellen. Mach dir vorerst keine Gedanken über den Inhalt – dazu kommen wir gleich.

Wenn du eine neue Datei von Grund auf erstellen musst, aber auch die Feinheiten des Inhalts sehen willst, bevor du deine eigene anpasst, schau dir das Standard-Theme Twenty Twenty-Four an.

Als Block-Theme hat es eine theme.json Datei, die du dir ansehen kannst. Es kann nützlich sein, sie geöffnet zu haben, wenn wir uns in den nächsten Abschnitten die Struktur ansehen.

Was du brauchst, um mit theme.json zu arbeiten

Natürlich wird nicht jeder in der Lage sein, die Konfigurationsdatei zu öffnen und sich an die Arbeit zu machen. Du brauchst noch einige grundlegende Fähigkeiten und Kenntnisse, um ein Theme zu erstellen und anzupassen:

  • Grundlegende JSON-Kenntnisse. Wir denken, dass du dir das schnell aneignen kannst, aber dennoch ist es wichtig, mit der JSON-Syntax und -Struktur vertraut zu sein.
  • Verständnis von CSS. Du wirst feststellen, dass viele Objekte und Eigenschaften von theme.json mit den entsprechenden CSS-Eigenschaften übereinstimmen. CSS-Kenntnisse sind hier von Vorteil.
  • Kenntnisse des WordPress-Block-Editors. Wenn du verstehst, wie Blöcke funktionieren und welche Anpassungsmöglichkeiten sie bieten, wird dir das beim Aufbau helfen.

Es ist zwar nicht unbedingt notwendig, aber wir empfehlen dir, zumindest die wichtigsten FSE-Konzepte zu verstehen, damit du die Datei theme.json effektiver nutzen kannst. Außerdem erfährst du vielleicht, wie sich deine Änderungen auf die Konfigurationen des Endnutzers auswirken werden. Es wird auch Fälle geben, in denen du weiterhin HTML und JavaScript verwenden musst, um deine Vision zu verwirklichen.

Schließlich gibt es noch ein paar technische „Extras“, die wir empfehlen würden:

  • Einen Code-Editor. Mit einem guten Editor, der JSON-Syntaxhervorhebung und -validierung bietet, wird dein Arbeitsablauf noch angenehmer.
  • Eine lokale Entwicklungsumgebung. Wenn du ein Tool wie DevKinsta für die Arbeit an deinem Theme verwendest, kannst du schnell experimentieren und deine Änderungen testen, ohne dass die Live-Site beeinträchtigt wird.

Mit diesen Tools und Kenntnissen bist du gut gerüstet, um dein WordPress-Theme mit theme.json anzupassen.

Ein Blick auf die Anatomie, Struktur und Hierarchie der theme.json

Die Datei theme.json hat natürlich eine Struktur, die du verstehen musst. Sie hat auch eine Hierarchie und einige einzigartige Elemente, die näher erklärt werden müssen.

Das ist wahrscheinlich der komplexeste Teil der Konfigurationsdatei, aber auch dann wirst du die Konzepte leicht verstehen.

Fangen wir mit der Struktur an und gehen dann zu den anderen Elementen von theme.json über.

Grundlegende Struktur

Da die Datei dem JSON-Format folgt, verstehst du vielleicht schon das allgemeine Konzept der Struktur. Zunächst einmal ist das gesamte Dateiobjekt in geschweifte Klammern eingeschlossen, ebenso wie einige der verschiedenen anderen Objekte darin. Jedes Objekt besteht aus Schlüssel-Wert-Paaren, wobei die Schlüssel in einfachen oder doppelten Anführungszeichen stehen und die Zeile mit einem Komma abgeschlossen wird.

Das absolute Minimum, das eine theme.json Datei braucht, sind die Objekte version, settings und styles:

{
    "version": 2,
    "settings": {
      // Global settings go here
    },
    "styles": {
      // Global styles go here
    }
}

Die Objekte settings und styles sind einfach, aber version erfordert mehr Erklärung. Dieser Wert ist eine ganze Zahl, die der API-Version entspricht, die du zum Lesen deiner Datei verwendest. Die aktuelle API-Version ist 3, aber auch die Version 2 ist üblich, und du kannst von älteren Versionen migrieren.

Die meisten theme.json Dateistrukturen enthalten auch ein Schema. Kurz gesagt, kannst du damit mit der Autovervollständigung in Code-Editoren arbeiten und die Datei validieren lassen. Du fügst es am Anfang der Datei hinzu:

{
    "$schema": "https://schemas.wp.org/trunk/theme.json",
    "version": 2,
    "settings": {
    },
    "styles": {
    }
}

Von hier aus fügst du verschiedene Eigenschaften und Objekte zu Einstellungen und Stilen hinzu, um deine Datei zu erweitern.

Hierarchie

Die Datei theme.json folgt einer hierarchischen Struktur und ist nur eine Ebene in der Gesamthierarchie der Einstellungen und Stile auf deiner Website. Wenn du über CSS-Kenntnisse verfügst, wird es dir leichter fallen, dies zu verstehen, denn diese Datei ist ähnlich komplex wie CSS.

Kurz gesagt, die Anpassungen, die du an theme.json vornimmst, werden nicht immer im Frontend deiner Website angezeigt. Die Benutzerkonfigurationen haben Vorrang vor allem anderen. Das bedeutet, dass alle Änderungen, die du im WordPress-Bildschirm Erscheinungsbild > Editor vornimmst, auch im Frontend angezeigt werden:

Die WordPress-Site-Editor-Oberfläche. In der linken Seitenleiste werden Optionen zur Designanpassung angezeigt, während im Hauptbereich ein Design für die Startseite der Website mit einer Überschrift zum Thema Innovation und Nachhaltigkeit sowie einem Bild einer modernen architektonischen Struktur angezeigt wird.
Die Hauptschnittstelle des Site Editors in WordPress

Wenn du ein Child-Theme verwendest und eine theme.json Datei einfügst, überschreibt diese alle Änderungen, die du nicht mit dem Site-Editor vorgenommen hast. Ebenso überschreibt alles, was du in der Konfigurationsdatei des Parent-Themes definierst, die Standardeinstellungen und -stile von WordPress. Auf diese Datei konzentrieren wir uns in diesem Beitrag, obwohl WordPress auch eine eigene theme.json Datei hat.

Auch wenn es in diesem Beitrag nicht im Mittelpunkt steht, kannst du die Werte auch mit Hooks und Filtern überschreiben. Mit diesen dynamischen Filtern kannst du Plugins und Themes erstellen, die auch die Einstellungen und Stile von Themen und Plattformen ändern.

Block-Grammatik

Wenn du in den WordPress-Block- oder Site-Editor gehst, einen Beitrag oder eine Seite öffnest und den Code-Editor einschaltest, wirst du viele HTML-Kommentare im Inhalt sehen:

Die WordPress-Code-Editor-Oberfläche im Block-Editor. Sie zeigt den HTML-Code für die Datenschutzrichtlinie einer Website an. Der Code enthält Überschriften und Absätze mit Details zur Website-Adresse, zu den Kommentarrichtlinien und zur Verwendung von Gravatar.
Der Code-Bearbeitungsbildschirm im WordPress-Block-Editor

Das liegt daran, dass Block-Themes keine PHP-Dateien verwenden, sondern HTML-Dateien zusammen mit Kommentaren und Block-Markup, um deine Seite zu erstellen. Die Kombination dieser Elemente ergibt die „Block-Grammatik“, die du brauchst, um deine theme.json Datei zu schreiben.

Bei Blöcken, die Inhalte enthalten, wie z. B. dem Absatzblock, umschließt du diese Inhalte:

<!-- wp:paragraph -->
    <p>Content goes here!</p>
<!-- /wp:paragraph -->

In anderen Fällen brauchst du nur einzeilige Kommentare oder solche, die sich selbst schließen. Bei einigen Blöcken kombinierst du Typen, um deine Layouts und Designs zu erstellen. Du kannst diese Kommentare auch verschachteln:

<!-- wp:columns -->
<div class="wp-block-columns">
    <!-- wp:column -->
        <div class="wp-block-column"></div>
    <!-- /wp:column -->
    

    <!-- wp:column -->
        <div class="wp-block-column"></div>
    <!-- /wp:column -->
</div>
<!-- /wp:columns -->

Hier erstellen wir einen Spaltenblock mit einem Wrapper-Kommentar. Darin können wir HTML hinzufügen, um die Spalten zu gestalten und einzelne Spaltenumbrüche einzufügen. Am Frontend ist das ganz einfach, denn du wirst oft Blöcke ineinander schachteln.

Um das Markup für einen bestimmten Block zu finden, kannst du im Handbuch des Block-Editors herumstöbern, bis du das findest, was du brauchst. Am einfachsten ist es jedoch, wenn du den Block zu WordPress hinzufügst, den Code-Editor öffnest und das Markup von dort kopierst.

Auf die Änderungen, die du in diesem Markup vornehmen kannst, gehen wir in einem späteren Abschnitt ein.

Wie theme.json und die WordPress-Site-Bearbeitung zusammenpassen

Aus der Diskussion über die Hierarchie wirst du wissen, dass theme.json ein wichtiger Teil von FSE ist. Beide arbeiten zusammen, um dir eine umfassende Theme-Lösung für WordPress zu bieten. So ist zum Beispiel die Schnittstelle für globale Stile im Wesentlichen die visuelle Darstellung deiner theme.json Einstellungen.

Der WordPress-Site-Editor, wobei auf der linken Seite ein Teil des Inhalts einer Website mit dunkelrotem Text angezeigt wird. Auf der rechten Seite konzentriert sich das Bedienfeld "Stile" auf die Farbeinstellungen. Es enthält eine Farbpalette und Optionen zum Anpassen von Farben für verschiedene Website-Elemente wie Text, Hintergrund, Links und Schaltflächen. Außerdem ist ein Kontrastprüfer sichtbar, der den Hexadezimalcode #A62B0C für das ausgewählte Farbschema anzeigt.
Die Seitenleiste des Site Editors, die die globalen Stiloptionen eines Themes anzeigt

Du kannst die Einstellungen entweder im Panel Globale Stile oder in der Konfigurationsdatei ändern und WordPress wird die entsprechenden Werte bei Bedarf aktualisieren. Während die Einstellungen im Site Editor Vorrang haben, dient theme.json als Grundlage für die eigenen Stile deines Themes. Der Endnutzer kann mit den Globalen Stilen die Standardeinstellungen durch seine eigenen Anpassungen ersetzen, ohne dass er Code eingeben oder die Datei theme.json bearbeiten muss.

Darüber hinaus werden die CSS-Eigenschaften, die du in theme.json definierst, in der Global Styles-Oberfläche verfügbar. So können die Nutzer/innen diese Eigenschaften für ein einheitlicheres Styling auf der gesamten Website nutzen. Außerdem kannst du auch spezifische Blockstile und -einstellungen definieren, die du über das WordPress-Dashboard weiter anpassen kannst.

Kurz gesagt: theme.json bietet eine detailliertere Kontrolle über Einstellungen, Stile und mehr. Es ist ein Tool für Entwickler, das unkomplizierter und übersichtlicher ist als klassische Ansätze. Im Gegensatz dazu gibt die Oberfläche der Globalen Stile jedem die Möglichkeit, ein Theme nach seinen eigenen Vorstellungen anzupassen. Bei der weiteren Entwicklung von Themes wirst du sehen, wie beide zusammenarbeiten, um Website-Designs und -Layouts zu erstellen.

Arbeiten mit den Eigenschaften der Datei theme.json

Wenn du die Grundlagen verstanden hast, kannst du mit den Objekten und Eigenschaften von theme.json arbeiten. Wir werden nicht alle Anwendungsfälle und Möglichkeiten abdecken können. Am Ende dieses Leitfadens wirst du jedoch in der Lage sein, Themes zu erstellen, die alle Funktionen bieten und im Frontend gut aussehen.

Settings

Mit der Eigenschaft settings kannst du festlegen, welche Funktionen du im Site-Editor anbietest und wie sie sich verhalten. Es handelt sich um eine Eigenschaft der obersten Ebene, die in der Regel mehrere Verschachtelungsebenen aufweist.

Wenn wir uns die Stile und ihre Variationen ansehen, wirst du sehen, dass es einige Überschneidungen zwischen diesen Optionen gibt, aber beide Arten spielen bei der Erstellung deines Themes eine Rolle.

Du hast eine bestimmte Anzahl von Eigenschaften zur Verfügung:

{
    "version": 3,
    "settings": {
        "appearanceTools": false,
        "blocks": {},
        "border": {},
        "color": {},
        "custom": {},
        "dimensions": {},
        "layout": {},
        "position": {},
        "shadow": {},
        "spacing": {},
        "typography": {},
        "useRootPaddingAwareAlignments": false
    }
}

Das offizielle WordPress-Handbuch für Theme-Entwickler enthält eine Referenz für alle diese Einstellungen (und Stile). Hier ist jedoch ein kurzer Überblick über ein paar wichtige Einstellungen, die einer näheren Erläuterung bedürfen:

  • appearanceTools. Diese Eigenschaft ermöglicht eine Reihe anderer Einstellungen und ist als Zeitersparnis gedacht. Mit ihr kannst du Rahmenoptionen, Zeilenhöhen für die Typografie, Auffüllungen, Ränder und vieles mehr einstellen.
  • blocks. Während du dich bei deiner Arbeit hauptsächlich mit globalen Einstellungen und Stilen befassen wirst, kannst du dies mit der Eigenschaft blocks auf Blockbasis tun. Auf dieses Konzept gehen wir hier nicht näher ein, aber das Theme Developer Handbook enthält eine hervorragende Dokumentation zu diesem Aspekt von theme.json.
  • custom. Diese einzigartige Eigenschaft hat keine Funktionalität, da du entscheidest, was sie tut. Du verwendest sie, um benutzerdefinierte CSS-Eigenschaften für dein Theme zu erstellen, und der Spielraum, den du dabei hast, ist groß.
  • useRootPaddingAwareAlignments. Auch hier handelt es sich um eine komplexe Eigenschaft, auf die wir nicht näher eingehen werden. Sie hilft dir im Wesentlichen dabei, die Stile für das horizontale Padding deines Themes zu platzieren und bietet dir eine Menge Möglichkeiten. Du verwendest sie, wenn du Elemente in voller Breite bis zum Rand des Bildschirms ausdehnen willst, während du das Root-Element mit einem Padding versiehst.

Beachte, dass du keine Eigenschaften zu theme.json hinzufügen musst, mit denen du nicht arbeiten möchtest. Wenn du zum Beispiel nicht mit appearanceTools arbeiten möchtest, kannst du es einfach weglassen, anstatt es mit false zu definieren.

Wie du Einstellungen in der theme.json definierst

Wenn es darum geht, Einstellungen zu definieren, hat jede Eigenschaft eine Reihe von Untereigenschaften aus Schlüssel-Wert-Paaren. Auf diese Weise kannst du zum Beispiel Farbpaletten erstellen:

{
    "version": 3,
    "settings": {
        "color": {
          "palette": [
            {
              "color": "#0073aa",
              "name": "Primary",
              "slug": "primary"
            },
            {
              "color": "#23282d",
              "name": "Secondary",
              "slug": "secondary"
            }
          ],
…

Andere Eigenschaften haben einfache boolesche Werte, mit denen du diese Funktionen im Site Editor ein- oder ausschalten kannst:

{
    "version": 3,
    "settings": {
        "color": {
            "background": true,
            "defaultPalette": true,
            "link": true,
            "text": true
        }
    }
}

Sobald du deine Einstellungen festgelegt hast, kannst du ein Styling für sie einführen. Lass uns das jetzt untersuchen.

Stile und Stilvariationen

Während settings den Zugriff auf bestimmte Styling-Optionen definiert, kannst du mit der Eigenschaft styles die globalen Stile für dein Theme festlegen. Auch hier handelt es sich um eine Top-Level-Eigenschaft, die auf mehreren Ebenen verschachtelt wird. Du kannst auf bestimmte Elemente oder Blöcke abzielen oder sogar benutzerdefinierte CSS-Eigenschaften verwenden.

Es ist wichtig, dass du hier Themenstile definierst, damit du sie im Seiteneditor aufrufen und anpassen kannst. Du kannst mit einer Reihe von Elementen arbeiten:

{
    "version": 3,
    "styles": {
        "border": {},
        "color": {},
        "dimensions": {},
        "filter": {},
        "shadow": {},
        "spacing": {},
        "typography": {},
        "css": {}
    }
}

Viele davon wirst du jedoch nur selten als Eigenschaften der zweiten Ebene verwenden. Stattdessen werden einige hauptsächlich mit Blöcken oder Elementen arbeiten. Zum Beispiel:

…
"styles": {
    "blocks": {
        "core/group": {
            "color": {
                "text": "#000000",
                "background": "#ffffff",
                "link": "#777777"
            }
…

Für globale Stile bearbeitest du die Wurzel – das entspricht dem <body> Tag deiner Seite. Für bestimmte Elemente kannst du eine ähnliche Struktur wie bei den Blöcken verwenden, diesmal jedoch mit der Eigenschaft elements:

…
"styles": {
    "elements": {
        "button": {
            "color": {
                "text": "#ffffff",
                "background": "#aa3f33"
            }
…

Wenn du dir die Änderungen im Seiteneditor ansiehst, solltest du sehen, dass sie umgesetzt wurden. Das Markup generiert auch CSS für alle Stile, die du erstellst:

Eine Startseite mit dem Titel "Ein Bekenntnis zu Innovation und Nachhaltigkeit" und einer Schaltfläche "Über uns". Die untere Hälfte zeigt die HTML-Struktur der Website im DevTools-Fenster des Brave-Browsers.
Das Frontend einer Website zeigt die DevTools des Browsers und hebt das generierte CSS für ein Element hervor

Beachte, dass du auch Pseudo-Klassen für Elemente wie Hover- und Fokus-Stile erstellen kannst:

…
"elements": {
    "button": {
        "color": {
            "text": "#ffffff",
            "background": "#aa3f33"
        },
        ":hover": {
            "color": {
                "background": "#822f27"
            }
…

Das Anwenden von Stilen geht noch weiter in die Tiefe, und das ist einer der fantastischen Vorteile der Verwendung von theme.json.

Stilvariationen

Bevor wir weitermachen, solltest du über Stilvariationen Bescheid wissen. Du kannst die verschiedenen Farbpaletten und Typografiestile in der FSE-Oberfläche sehen:

Die WordPress-Site-Editor-Oberfläche zeigt auf der linken Seite die Stilvariationen eines Themes mit verschiedenen Schrift- und Farboptionen an. Im Hauptinhaltsbereich wird eine Überschrift "Ein Bekenntnis zu Innovation und Nachhaltigkeit" mit einer Unterüberschrift, der Schaltfläche "Über uns" und einem Hero-Bild eines modernen Gebäudes angezeigt.
Die Stil-Seitenleiste im Site-Editor, die verschiedene Varianten zeigt

Diese kannst du jedoch nicht in theme.json programmieren. Stattdessen erstellst du alternative Versionen der Datei, gibst ihnen einen eindeutigen Namen und speicherst sie im Styles-Verzeichnis deines Themes:

Die macOS-Benutzeroberfläche zeigt zwei Fenster. Das Hintergrundfenster zeigt einen Datei-Explorer mit mehreren JSON-Dateien für verschiedene Farbschemata. Das Vordergrundfenster zeigt einen Code-Editor, der für green.json geöffnet ist und die Einstellungen für die Themefarbe für ein grünes Farbschema enthält.
Ein Code-Editor, der die JSON-Dateien der Style-Variationen zeigt

Beachte, dass der Titel im Markup für jede alternative JSON-Datei einzigartig ist. Er ist jedoch ein optionales Feld – wir empfehlen dir jedoch, ihn aus Gründen der Übersichtlichkeit und der besten Erfahrung zu verwenden.

Benutzerdefinierte Vorlagen und Vorlagenteile

Ähnlich wie bei Stilvariationen kannst du auf theme.json benutzerdefinierte Vorlagen und zugehörige Vorlagenteile registrieren. Die Registrierung des Markups ist ganz einfach:

"customTemplates": [
    {
        "name": "my-template",
        "title": "My Template",
        "postTypes": [
            "page",
            "post"
        ]
    }
]

Über die Eigenschaft customTemplates musst du drei Elemente definieren:

  • name. Dies entspricht einer Vorlage, die du im Templates-Verzeichnis deines Themes erstellst, z. B. /template/my-template.html.
  • title. Dies ist die lesbare Version des Namens der Vorlage.
  • postTypes. Ohne Definition ist dies standardmäßig eine Seite, aber du kannst eine Reihe von Beitragstypen angeben, für die die Vorlage geeignet ist.

Die Nutzer können alle Vorlagen, die du registrierst, im Website- oder Block-Editor auswählen:

Der WordPress-Block-Editor zeigt Details zu einer veröffentlichten Seite an, darunter Status, Veröffentlichungsdatum, Link, Autor und Vorlage. Es gibt ein Dropdown-Menü mit Optionen zum Bearbeiten, Austauschen, Anzeigen oder Erstellen einer neuen Vorlage.
Im WordPress-Site-Editor kannst du eine Vorlage bearbeiten, austauschen, erstellen oder anzeigen

Wenn es um Vorlagenteile geht, musst du sie nicht registrieren, aber wir empfehlen es. Die Struktur ist ähnlich wie bei der Registrierung von Vorlagen:

…
"templateParts": [
    {
        "area": "header",
        "name": "header",
        "title": "Header"
    },
…

Hier entsprechen der Name und der Titel denselben Definitionen wie bei vollständigen Vorlagen. Der Bereich bezieht sich darauf, wo der Teil hingehört: header, footer oder uncategorized sind die Standardwerte, aber du kannst Vorlagenteile jedem beliebigen Bereich zuweisen.

Wir empfehlen dir, dich auch damit zu beschäftigen, wie du diese Vorlagenteile anzeigen kannst, da sie ohne zusätzlichen Code nicht angezeigt werden können. Trotzdem ist es ganz einfach, sie zu registrieren.

Patterns

Zum Schluss kommen wir zu den Blockmustern. Du kannst eine beliebige Anzahl von ihnen in deiner theme.json Datei mit einem Top-Level-Array bündeln. Du kannst jedes geeignete Muster aus der WordPress-Musterbibliothek in deine Datei aufnehmen:

Der Suchbildschirm der WordPress-Musterbibliothek zeigt ein Raster mit Vorlagen für das Design von Websites an. Die Vorlagen enthalten verschiedene Banner- und Kopfzeilenentwürfe mit Bildern, Text und Schaltflächen.
Die WordPress-Musterbibliothek

Die Definition des Arrays ist einfach: Du verwendest die Eigenschaft patterns und den Slug des zugehörigen Musters aus der URL der Bibliothek:

Eine Nahaufnahme einer Browser-Adressleiste, die den Slug aus der URL in der Symbolleiste hervorhebt. Der Rest des Bildschirms zeigt ein orangefarbenes Heldenbildmuster mit einer großen Überschrift, einer kleinen Beschreibung und einer Schaltfläche "Jetzt kaufen".
Auswahl des Slugs eines Musters aus der URL in einem Webbrowser

Mit diesem Slug kannst du das patterns Markup auffüllen:

{
    "version": 3,
    "patterns": [
        "fullwidth-vertically-aligned-headline-on-right-with-description-on-left"
    ]
}

Du kannst sie aus dem Musterverzeichnis des Blockeditors auswählen:

Die WordPress-Block-Editor-Oberfläche zeigt links ein Seitenleistenmenü mit Blockelementen und Mustern und rechts eine Vorschau verschiedener Bannerdesigns. Das Hauptbanner zeigt den fettgedruckten Text
Das WordPress-Musterverzeichnis im Blockeditor

Diese einfache Möglichkeit, die Assets der Musterbibliothek in deine Themes zu bringen, ist praktisch und wertvoll. Das ist ein weiterer Grund dafür, dass die theme.json Datei unter WordPress-Theme-Entwicklern immer beliebter wird.

Der Arbeitsablauf für die Anpassung deiner WordPress-Website mit theme.json

Wenn du die wichtigsten Komponenten von theme.json verstanden hast, ist die Entwicklung deines Arbeitsablaufs für die Verwendung der Datei ein wichtiger Schritt. Sie stellt eine neue Art der Theme-Entwicklung dar und muss daher anders gehandhabt werden als klassische Methoden.

Unser Ansatz wäre es, die Schema-URL einzurichten, eine API-Version auszuwählen und zuerst deine globalen Einstellungen zu definieren. Dazu gehören z. B. die Farbpalette, die Typografieoptionen und die Layouteinstellungen. In den meisten Fällen wäre es auch von Vorteil, die appearanceTools zu aktivieren:

"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
   "settings": {
"appearanceTools": true,
     "color": {
       "palette": [
         {
           "name": "Primary",
"slug": "primary",
           "color": "#0073aa"
         },
         {
      "name": "Secondary",
        "slug": "secondary",
           "color": "#23282d"
         }
       ]
     },
     "typography": {
"fluid": true,
       "fontSizes": [
         {
           "size": "13px",
           "slug": "small",
           "name": "Small"
         },
         {
"size": "16px",
           "slug": "normal",
           "name": "Normal"
…

Als Nächstes kannst du mithilfe der von dir definierten Slugs benutzerdefinierte CSS-Eigenschaften erstellen. Vielleicht hast du zum Beispiel eigene Schriftschnitte erstellt:

…
"custom": {
    "fontWeight": {
        "light": 300,
        "regular": 400,
        "medium": 500,
        "bold": 700
    },
…

Wenn du mit deinen Einstellungen fertig bist, ist es an der Zeit, Stile festzulegen.

…
"styles": {
    "color": {
        "background": "var(--wp--preset--color--base)",
        "text": "var(--wp--preset--color--main)"
    },
…

Die Anpassung der Blockstile ist der nächste Schritt, der einen großen Teil deiner theme.json Datei ausmachen kann.

…
"styles": {
    "block": {
        "core/separator": {
            "color": {
            "text": "var(--wp--preset--color--main)"
            },
        "typography": {
            "fontSize": "var(--wp--preset--font-size--large)"
            }
        },
        "core/site-tagline": {
            "spacing": {
                "margin": {
                    "bottom": "20px"
                }
            },
            "typography": {
                "fontSize": "var(--wp--preset--font-size--small)"
            }
        },
        "core/site-title": {
            "typography": {
                "fontSize": "var(--wp--preset--font-size--medium)",
                "fontWeight": "var(--wp--custom--font-weight--semi-bold)",
                "lineHeight": "var(--wp--custom--line-height--none)"
        },
…

Schließlich musst du alle benutzerdefinierten Vorlagen und Vorlagenteile entwerfen und sie in theme.json registrieren. Dies ist auch der Zeitpunkt, um alle Block-Muster zu registrieren, die du verwenden möchtest, und sie gegebenenfalls zu erstellen.

Kinsta als Teil deines Workflows für die Entwicklung und Anpassung deines Themes nutzen

Bevor du deine Änderungen live schaltest, solltest du alles testen. Bislang hast du wahrscheinlich mit einem lokalen Entwicklungstool wie DevKinsta gearbeitet:

Die DevKinsta-Oberfläche für eine einzelne Website. Sie zeigt Details wie die WordPress-Version, den Webserver, die PHP-Version und den Datenbanktyp sowie eine Vorschau der Startseite der Website an.
Die DevKinsta-Oberfläche

Es ist aber auch wichtig, dass du deine Entwicklung auf einer Live-Site überprüfst. Mit der Kinsta-Integration von DevKinsta kannst du eine Website in eine Standard- oder Premium-Staging-Umgebung übertragen:

Die DevKinsta-Oberfläche zeigt Website-Informationen und Steuerelemente an. Das Dropdown-Menü der Schaltfläche "Synchronisieren" ist geöffnet und zeigt die Optionen "Push to Kinsta" und "Pull from Kinsta" an.
Die Sync-Optionen in DevKinsta

Von dort aus kannst du dein Theme in unserer erstklassigen Cloud-Architektur testen und hast die volle Kontrolle über die Änderungen, die du live schaltest.

Außerdem kannst du unser komplettes Backup-Management nutzen, mit dem du tägliche automatische Backups sowohl in der Live- als auch in der Staging-Umgebung wiederherstellen kannst. Außerdem werden alle unsere Staging-Umgebungen mit DevTools ausgeliefert, mit denen du die Leistung deiner Website überwachen kannst, bevor du sie live schaltest.

theme.json oder Full Site Editing verwenden?

Angesichts der Überschneidungen zwischen theme.json und dem Full Site Editing fragst du dich vielleicht, warum du das eine dem anderen vorziehen solltest. Tatsächlich eignen sich beide für unterschiedliche Szenarien und sollten zusammen verwendet werden.

theme.json ist zum Beispiel in den folgenden Situationen die erste Wahl:

  • Du entwickelst Themes und erstellst ein neues Theme von Grund auf.
  • JSON ist eine Sprache, die du verstehst und mit der du gut umgehen kannst.
  • Du möchtest eine programmatische Methode, um Standardstile und -einstellungen für dein Theme zu definieren.
  • Die Stile und Einstellungen, die du implementieren willst, brauchen mehr Kontrolle als die Standardeinstellungen im Site Editor.

Zugegeben, der letzte Punkt ist eine Nische, denn FSE spiegelt die Funktionalität von theme.json fast genau wider. In den folgenden Szenarien ist Full Site Editing für die meisten Nutzer sinnvoller:

  • Du bist ein Website-Betreiber, der ein bestehendes Theme anpassen möchte.
  • Mit JSON bist du nicht vertraut.
  • Visuelle Schnittstellen sind für deinen Anpassungs- und Entwicklungsworkflow sinnvoller.
  • Du willst schnelle Anpassungen vornehmen, ohne dass du viel programmieren musst.

In der Praxis wird das Theme eine Konfigurationsdatei benötigen, um seine Grundlagen zu definieren. Von da an übernimmt die Hierarchie, und die Website-Betreiber können FSE nutzen, um weitere Anpassungen vorzunehmen.

Zusammenfassung

Die Konfigurationsdatei theme.json ist revolutionär für die Entwicklung von WordPress-Themes. Sie gibt dir ein zentrales Zuhause für die Einstellungen und Stile deines Themes und ermöglicht es dir, flexiblere, wartbare und anpassbare Themes zu erstellen.

Du verwendest die Datei zusammen mit dem Site-Editor in WordPress, um das endgültige Design einer Website zu erstellen. Die Optionen, die du in theme.json einstellst, dienen als Standard, den der Endnutzer weiter anpasst. Die gute Nachricht ist, dass das Kodieren dieser Datei einfacher ist als das Ändern einer Reihe von PHP- und CSS-Dateien – und sie ist die Zukunft des WordPress-Designs.

Hast du noch Fragen zur Verwendung der theme.json Datei in WordPress? Lass es uns in den Kommentaren unten wissen!

Jeremy Holcombe Kinsta

Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.