WordPress-Themes theme.json Datei
Möchtest du mehr zum Thema Theme.json erfahren?
Was ist und was macht eigentlich die theme.json Datei innerhalb eines WordPress-Themes?
Seit WordPress 5.8 gibt es innerhalb von WordPress-Themes die sogenannte theme.json Datei. Doch auch wenn viele sie schon gesehen oder von ihr gehört haben, wissen die meisten dennoch nicht, was genau diese Datei eigentlich macht. Eine berechtigte Frage, dachte ich mir, und eine wunderbare Möglichkeit, um in einem Artikel darüber aufzuklären und die Details der theme.json mal ein wenig zu erläutern.
Das ist auch deshalb so bedeutend, weil ich finde, dass Blogger mehr Verständnis für das Backend von WordPress aufbringen sollten. Oft wird alles als selbstverständlich und funktionell hingenommen, doch sobald es dann mal einen Fehler gibt, stehen die meisten plötzlich vollkommen hilflos da. Mit etwas mehr Hintergrundwissen lässt sich so etwas hingegen oft problemlos vermeiden, weil Fehler sich leichter zuordnen lassen und von Nutzern besser verstanden werden.
Davon abgesehen ist die theme.json Datei unter Umständen auch notwendig, weshalb nun die Erläuterung folgt. Seid gespannt, was es mit der noch relativ neuen Theme-Datei auf sich hat.
Weiterführende Ressourcen auf WordPress.org:
- Themes – Global Settings and Styles (theme.json)
- Block-Editor – Global Settings and Styles (theme.json)
Was ist eine .json Datei überhaupt?
JSON ist nichts anderes als die Abkürzung für JavaScript Object Notation. JSON selbst ist ein Textformat zum Speichern und Transportieren von Daten, die dabei vollkommen selbsterklärend sein sollen. Die dort enthaltenen Angaben sind also besonders einfach auszulesen und weiterzuverwenden. Das macht eine JSON-Datei am Ende auch aus.
Innerhalb von Web-Anwendungen kommen JSON-Dateien immer dann zum Einsatz, wenn Informationen weitergereicht und verarbeitet werden sollen. Ich exportiere unter anderem E-Mail-Adressen im Format einer JSON-Datei und kann diese dann kinderleicht in meine Newsletter-Software importieren, die all die Adressen einfach auslesen und speichern kann.
Außerdem haben viele Programmiersprachen, wie eben unter anderem auch Javascript, Funktionen inne, die JSON-Dateien schreiben und lesen können. Der hohe Grad an Kompatibilität und die Tatsache, dass JSON eben ein Standardformat ist, zeichnen selbiges aus. Denn um Daten zu transportieren, kommt im Internet nun einmal eine JSON-Datei zum Einsatz. Und weil sich alle darüber einig sind, funktioniert das zur Abwechslung auch ganz wunderbar.
Was ist die theme.json Datei in WordPress-Themes?
Kadence Theme
Erstelle atemberaubende Websites in minutenschnelle mit diesem schlanken und schnellen WordPress-Theme. Fortschrittliches Webdesign!
Kadence Blocks
Kadence Blocks bietet Werkzeuge, die es dir ermöglichen, einzigartige und aussagekräftige Inhalte einfacher im nativen WordPress-Editor zu erstellen.
Doch was genau macht die JSON-Datei denn nun in WordPress und was genau ist und enthält die sogenannte theme.json innerhalb des WordPress-Themes? Zunächst einmal ist die theme.json eine Datei, die meist nur den neuen und somit aktuellen Blog Themes beiliegt. Es handelt sich dabei im Wesentlichen um eine Art Konfigurationsdatei des Themes selbst sowie dessen erweiterten Features und Funktionen.
Durch das neue Full Site Editing können WordPress-Nutzer die Themes inzwischen nämlich ganz direkt im visuellen Editor verändern und gestalten. Da wäre es doch praktisch, wenn all diese Werte nicht jedes Mal die Theme-Dateien verändern würden, sondern vielmehr global gespeichert werden könnten. Genau das geschieht in der theme.json deines WordPress Block Themes, denn dort sind all diese Angaben entsprechend hinterlegt.
Farben, Schriften, Schriftgrößen, Abstände und Breiten sowie vieles mehr wird also in der theme.json gesichert. Auch lässt sich all das für einzelne Blöcke konfigurieren, sodass eine wahre Vielfalt an Einstellungen enthalten sein kann, die dein WordPress-Theme dann entsprechend automatisiert anpassen. Ebenso lassen sich hier bereits vorab unterschiedliche Stile hinterlegen, die dann von den Nutzern des Themes schnell und einfach gewählt oder vom Ersteller als Standard deklariert werden können.
Statt komplexe Anpassungen am Code vornehmen zu müssen, um Änderungen am Theme umzusetzen, sind diese nun innerhalb der theme.json Datei angegeben. Damit werden Anpassungen nicht nur standardisiert, sondern lassen sich auch viel einfacher kopieren, weil sie jederzeit flexibel bleiben. Mit der theme.json hat sich das Anpassen von Themes daher auch massiv vereinfacht und gleichzeitig ist viel mehr möglich als noch zuvor.
Wie ist die theme.json strukturiert?
Als Fundament moderner WordPress Block Themes ist die theme.json entsprechend wichtig und bedeutungsvoll. WordPress selbst stellt in der Dokumentation für Entwickler dazu eine Art Schema vor, welches verdeutlicht, dass es verschiedene Top-Level-Bereiche gibt, also Hauptabschnitte, die dann weitere Konfigurationen festlegen. Schauen wir uns kurz das Snippet an und dröseln dann die einzelnen Zeilen etwas auseinander.
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
"settings": {},
"styles": {},
"customTemplates": {},
"templateParts": {},
"patterns": []
}
Schema: Das JSON-Schema ist optional und enthält die URL zum jeweiligen JSON-Schema. Das Schema nimmt Einfluss auf das Reporting in Code-Editoren, die so mitunter Hinweise und Fehler direkt ausgeben. WordPress selbst nennt es zwar optional, stellt aber ebenfalls direkt klar, dass es kaum gute Gründe gibt, es einfach wegzulassen. Es ist schlichtweg gängige Entwicklungspraxis.
Version: Die Version innerhalb der theme.json gibt nicht etwa die Theme-Version an, sondern vielmehr die verwendete API-Version, mit der die JSON-Datei interpretiert wird. Aktuell ist das die Version drei. Wird keine Version angegeben, liest WordPress die theme.json automatisch mit Version eins der API aus.
Settings: Unter Settings werden, du wirst es erraten, eine Vielzahl an unterschiedlichen Einstellungen für das jeweilige Theme festgelegt. Von Farben über Typografie und Größenangaben findest du hier einen Großteil der Einstellungen wieder, die dafür sorgen, dass dein WordPress-Theme am Ende eben so aussieht, wie es eben aussieht.
Styles: Unter Styles werden Eigenschaften global, für einzelne Elemente oder auch einzelne Blöcke festgelegt. Also die Standards, die das WordPress-Theme von Anfang an nutzt. Hier geht es also vor allem um Hintergrundfarben, Schriftarten und wie diese im Theme dargestellt werden.
Custom Templates und Template Parts: Die Bereiche Custom Templates und Template Parts habe ich an dieser Stelle einmal zusammengefasst. Hier werden sämtliche Seiten-Templates und Template-Teile eines Themes angegeben. Über die Eigenschaft Custom Templates werden eigene Vorlagen für einzelne Beiträge, Seiten oder Custom Post Types registriert.
Patterns: Mit der Eigenschaft der Patterns lassen sich beliebige Pattern aus dem WordPress-Verzeichnis zusammen mit dem jeweiligen Theme bündeln und anbieten. Die Pattern können dann mitgeliefert werden, ohne, dass Theme-Entwickler diese tatsächlich erst eigenständig erstellen müssen.
Wie sieht es mit der Sicherheit und Validierung aus?
WordPress ist seit jeher nicht nur dafür bekannt, ein besonders einfaches Content-Management-System zu sein, sondern leider auch für teilweise recht große Sicherheitslücken. Aufgrund des dynamischen Aufbaus lässt sich das auch gar nicht vermeiden, denn wo Dynamik herrscht, gibt es potenziell auch Schwachstellen. Das ist einfach so. Doch wie sieht es mit der Sicherheit in Bezug auf die theme.json Datei aus?
Auch wenn ich hier kein direktes Potenzial für bösartige Angriffe sehe, ist dennoch Vorsicht geboten. WordPress selbst validiert die theme.json mittels der API bzw. des verwendeten Schemas. Auf diese Weise wird sichergestellt, dass nur erlaubte Einstellungen auch entsprechend ausgelesen werden.
Damit wird genau genommen von Anfang an sichergestellt, dass die theme.json den jeweiligen Spezifikationen entspricht. Zukünftige API-Versionen werden den Umfang erweitern, doch die Validierung bleibt logischerweise bestehen. Für mich stellt die theme.json Datei daher kein allzu großes Risiko in Bezug auf die Sicherheit von WordPress dar.
Welchen Einfluss hat die theme.json auf die Performance?
Ein Thema, welches mir selbst besonders am Herzen liegt, ist die Performance von WordPress. Denn die lässt oft zu wünschen übrig, was mitunter auch damit zusammenhängt, dass Theme- und Plugin-Entwickler zu viele Optionen und Möglichkeiten integrieren, die dann entsprechend genutzt werden können.
Beschleunige deine Website mit
WP Rocket
Verwandle deine Website in eine Rakete mit dem leistungsstärksten, von WordPress-Experten anerkannten Caching-Plugin.
Im Falle der theme.json würde ich aber eher über einen Performancevorteil als über einen Performancenachteil nachdenken. Denn die Datei sorgt mitunter eben dafür, dass sämtliche Theme-Optionen nun zentral innerhalb der theme.json gespeichert werden können. Sie müssen also nicht mehr aus unterschiedlichen Quellen heraus gesichert und geladen werden.
Zudem kann die theme.json zwischengespeichert im Cache verweilen, was ebenfalls die Performance verbessert. Rein in Bezug auf die Leistung deiner WordPress Website betrachtet, ist die theme.json daher definitiv eher ein Gewinn als ein Nachteil.
WordPress ist bereit für die Zukunft
Vor den WordPress Block Themes mussten derartige Einstellungen über die functions.php und mittels „add_theme_support“ hinzugefügt werden. Mit der theme.json ist das inzwischen einfacher und die Möglichkeiten sind zugleich deutlich vielfältiger geworden.
WordPress hat sich über die letzten Versionsnummern hinweg stark weiterentwickelt und gewissermaßen auch verändert. Block Editor, Block Themes, Full Site Editing – es scheint, als wäre nichts mehr von dem klassischen WordPress vorhanden, wie alteingesessene Blogger es kennen. Doch das täuscht natürlich.
Vielmehr hat sich die Art und Weise gewandelt, wie du mit WordPress arbeiten und denken musst. Egal, ob du nun als Blogger einen Blick darauf wirfst, als Theme- oder Plugin-Entwickler oder als großer Unternehmer, der seine Firmenwebsite mit WordPress realisiert. Allgemein sind die Änderungen allesamt positiv, denn sie machen WordPress bereit für die Zukunft.
Offenlegung Werbelinks: Mit einem Stern (*) gekennzeichnete Links und Buttons sind sogenannte Affiliate-Links. BloggerPilot bekommt bei einem Kauf eine Provision, die sich jedoch nicht auf den Endpreis auswirkt. Es ist uns wichtig zu betonen, dass dies keinen Einfluss auf unsere Bewertung oder Meinung hat.