Wie Sie ein Twenty Twenty-Two Child Theme erstellen

Child Theme für Twenty Twenty-One: Header mit Vogel
Twenty Twenty-Two Child Theme: Header mit einem der vielen Vögel des Themes

Mit WordPress 5.9 hat nun das Full Site Editing die große Bühne betreten. Seit letztem Sommer stand es zwar schon zur Verfügung. Dies allerdings nur solchen Nutzer/innen, die auch das Gutenberg Entwickler-Plugin installiert hatten. Nun aber können alle damit arbeiten – sofern sie ein sogenanntes Block Theme aktiviert haben. Das neue Standardtheme Twenty Twenty-Two ist so ein Block Theme. Und auch wenn sich Twenty Twenty-Two im neuen Website Editor ohne weitere Kodierung updatesicher anpassen lässt, kann so ein Child Theme doch nützlich sein.

Letzten Sommer fragte ich mich noch, wie das beim Full Site Editing mit dem Child Theme funktionieren soll. Nun weiß ich: Es ist viel einfacher, als ich damals vermutet hätte!

Twenty Twenty-Two ist einen zweiten Blick wert

Man muss kein Ornithologe sein, um dem neuen Standardtheme etwas abgewinnen zu können. Twenty Twenty-Two bringt sehr viele Blockvorlagen mit – und die nutzen Bilder von Vögeln als Beispiele für die Gestaltung.

Natürlich liegt es jetzt nicht in der Absicht des WordPress Teams, dass nun die Hälfte aller Websites diese Bilder auch nutzen. Nur im Moment bietet es sich halt an, das Theme und seine Optionen für die Gestaltung mit eben diesen Bildern vorzustellen. Weshalb Sie aktuell überall Beiträge zu dem neuen Standardtheme mit eben diesen Vogelbildern sehen. Nun sind die Bilder aber auch hübsch, das muss man ihnen lassen. Zudem lässt ihre Lizenz (CC0 1.0 Universal (CC0 1.0) Public Domain Dedication) es zu.

Twenty Twenty-Two Blockvorlage: Spaltenblock mit zwei Bildern (natürlich von Vögeln)
Die Bilder einer Blockvorlage lassen sich natürlich austauschen

Zu finden sind diese Vogelbilder, die Teil der Twenty Twenty-Two Blockvorlagen sind, übrigens im Verzeichnis /assets des Theme-Ordners /twentytwentytwo. Von dort kann man sie sich in die Mediathek holen und dann mit ihnen herumspielen.

Fern von hübschen Bildern bedeutet das Arbeiten mit einem Block Theme wie Twenty Twenty-Two aber wirklich eine echte Umstellung. Fortgeschrittene und Profis müssten sich arg an die neuen Anforderungen anpassen. Und WordPress Einsteiger sind klar überfordert.

Aber »Anpassen« ist ja auch die Bezeichnung der Gutenberg-Phase, in der wir gerade alle stecken. Wir reden hier von der Möglichkeit, die Website mit dem neuen Website Editor von Header bis Footer anzupassen. Den neuen Editor sehen Sie aber eben auch nur, wenn Sie ein Block Theme aktivieren.

Der neue Website Editor

Was auf den ersten Blick irgendwie sehr einfach aussieht, gestaltet sich bei der Arbeit dann aber doch nicht so easy und selbstverständlich. Mitnichten ist das Full Site Editing nur ein Block-Schubsen. Ganz im Gegenteil: Es erfordert, dass Sie das Zusammenspiel von Templates und Template-Teilen verstehen lernen. Und an dieser Stelle ist Twenty Twenty-Two eine sehr gute Schule.

Aber wie das bei Schulen so ist: Manchmal überkommen einen die Erkenntnisse wie im Flug. Und manchmal möchte man einfach nur schreien.

Schreien möchte ich hier auf diesem Blog nicht. Sondern nach und nach meine Erkenntnisse teilen. Und dabei wird Twenty Twenty-Two immer die Grundlage bieten.

Wozu ein Child Theme für Twenty Twenty-Two erstellen?

Eine meiner ersten Erkenntnisse bei Twenty Twenty-Two war, dass das Theme für Überschriften eine Schriftart benutzt, die mir nicht gefällt: Source Serif Pro. Wenngleich mir gefällt, dass das Theme diese Schriftart in seinen /assets mitbringt und nicht über eine Verbindung zu Google Fonts bezieht. Mir gefällt die Schriftart an sich halt nicht. Und schon erst recht nicht für Überschriften.

Doch wie kann ich die abwählen? Im Website Editor lässt sie sich jedenfalls nicht einfach so abschalten. Eine Wahl haben Sie hier nur für Text an sich. Also alle Textsorten – bis auf die Überschriften. Für die Überschriften ist der Font Source Serif Pro über die Datei theme.json festgelegt.

Diese theme.json finden Sie im Theme-Verzeichnis auf Ihrem Server. Klar können Sie die nun bearbeiten. Und das wird auch funktionieren. Allerdings nur bis zum nächsten Theme-Update.

Nun ist mein Missfallen der Schriftart für die Überschriften nicht der einzige Grund, warum man auf die Idee kommen kann, für Twenty Twenty-Two ein Child Theme zu erstellen. Was ist, wenn Sie Ihre eigenen Blockvorlagen (ohne Vögel…) erstellen wollen? Dann brauchen Sie ein Child Theme.

Denn auch wenn sich ein Block Theme Ihre Anpassungen im Rahmen des Website Editors merkt, überschreibt das Theme-Update Ihre Änderungen der functions.php (sofern es die überhaupt gibt).

Child Theme für ein Block Theme erstellen, am Beispiel von Twenty Twenty-Two

Ein Child Theme für ein Block Theme zu erstellen, ist grundsätzlich echt einfach. Was Sie dann damit machen, steht auf einem anderen Blatt geschrieben. Aber so ein Block Child Theme benötigt eigentlich nur drei Dateien:

  • eine style.css
  • eine theme.json und
  • eine index.php.

Hinzukommen dann weitere mögliche Dateien und Ordner, so vor allem

  • eine functions.php und
  • Ordner für templates, parts, blockpatterns, fonts, et cetera

Wenn Sie darauf bestehen, können Sie Ihrem Child Theme natürlich auch noch eine screenshot.png gönnen. Ohne eine solche Bilddatei, die nur für die Darstellung im Backend unter Desgin > Themes zu sehen ist, funktioniert das Ganze aber auch.

style.css = die Verbindung zwischen Child Theme und Twenty Twenty-Two

Die Verbindung zwischen Ihrem Child Theme und einem Block Theme wie Twenty Twenty-Two findet wie gehabt in der style.css statt. Und zwar im Rahmen der Angaben, die ganz zu Beginn der Datei stehen.

Für mein Child Theme Luzi-TT2-Blocks, mit dem ich auf bloggerbrunch.de herumspiele, habe ich folgende Angaben gewählt:

/*
Theme Name: Luzi-TT2-Child
Author: bk
Author URI: https://britta-kretschmer.de
Description: nur ein Versuch
[...]
Template: twentytwentytwo
[...]
*/

Die wesentliche Angabe in Hinblick auf die Verbindung zum Parent Theme ist hier: Template: twentytwentytwo. Wäre das Parent Theme Blockbase, lautete die Angabe also: Template: blockbase.

theme.json für die Globalen Stile

Wenn Sie so wie ich nur etwas herumprobieren wollen, macht es viel Sinn, die theme.json von Twenty Twenty-Two zu nehmen und hier nur wenige Änderungen für Ihr Child Theme vorzunehmen. In meinem Fall beziehen sich die Änderungen auf den Font für die Überschriften.

Die theme.json ist in Bereiche eingeteilt. Beginnend mit der Versionsnummer erscheinen als Erstes die custom templates. Dann folgen die settings, später die styles. Zum Schluss gibt es noch die templateParts. In Hinblick auf die Schriftart der Überschriften interessiert uns der Bereich der styles.

Insgesamt umfasst die theme.json aktuell über 350 Zeilen. Im Bereich der settings, ab Zeile 170, geht es um die Schriftarten, die das Theme nutzen soll:

"typography": {
	"dropCap": false,
	"fontFamilies": [
		{
		"fontFamily": "-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif",
		"name": "System Font",
		"slug": "system-font"
		},
		{
		"fontFamily": "\"Source Serif Pro\", serif",
		"name": "Source Serif Pro",
		"slug": "source-serif-pro"
		}
	],

Das kann so bleiben, wie es ist. Vielleicht wollen Sie die Source Serif Pro ja an anderer Stelle noch nutzen.

Die Änderungen für die Überschriften finden nun im Bereich styles, ab Zeile 268, statt. Hier sind die sechs Überschriftebenen h1 bis h6 als elements aufgelistet.

"elements": {
	"h1": {
		"typography": {
			"fontFamily": "var(--wp--preset--font-family--source-serif-pro)",
			"fontWeight": "300",
			"lineHeight": "var(--wp--custom--typography--line-height--tiny)",
			"fontSize": "var(--wp--custom--typography--font-size--colossal)"
			}
		},
	"h2": {
		"typography": {
			"fontFamily": "var(--wp--preset--font-family--source-serif-pro)",
			"fontWeight": "300",
			"lineHeight": "var(--wp--custom--typography--line-height--small)",
			"fontSize": "var(--wp--custom--typography--font-size--gigantic)"
			}
		},
	"h3": {
		"typography": {
			"fontFamily": "var(--wp--preset--font-family--source-serif-pro)",
			"fontWeight": "300",
			"lineHeight": "var(--wp--custom--typography--line-height--tiny)",
			"fontSize": "var(--wp--custom--typography--font-size--huge)"
			}
		},
		[...]

Jede dieser Überschriften zeigt als fontFamily den Wert "var(--wp--preset--font-family--source-serif-pro)". Den gilt es nun also für jede Überschriftenebene zu verändern. Aus "var(--wp--preset--font-family--source-serif-pro)" wird "var(--wp--preset--font-family--system-font)".

Was System Font bedeutet, ist in den settings oben definiert. Dort sind die Schriftarten aufgelistet, die WordPress auch für das Backend nutzt. Für Windows-Systeme ist dies die Segoe UI.

index.php – vielleicht bald nicht mehr nötig

Eine index.php ist in der Tat zwar noch nötig, allerdings … Twenty Twenty-Two hat in seiner index.php nur Folgendes stehen:

»Hier steht nix, weil Block Themes keine PHP-Vorlagen nutzen. Es gibt eine Diskussion im Core Trac, in der es um das Entfernen dieser Anforderung für Block Themes geht.« Es folgt der Link zu dieser Diskussionsgruppe.

Angabe in der index.php von Twenty Twenty-Two

functions.php – für eigene Funktionen

Eine functions.php brauchen Sie immer dann, wenn Sie eigene Funktionen hinzufügen wollen. Das kann schon damit beginnen, dass Sie eigene Definitionen in Ihrer style.css hinterlegen wollen. Oder was auch immer Sie sonst noch Ihrem Child Theme hinzufügen möchten.

Für das Hinterlegen eigener Styles im Rahmen der style.css lautet der Eintrag in der functions.php (Quelle: fullsiteediting.com):

function fse_styles() {
	wp_enqueue_style(
		'fse-style',
		get_stylesheet_uri(),
		wp_get_theme()->get( 'Version' )
	);
}
add_action( 'wp_enqueue_scripts', 'fse_styles' );

Ordner für eigene Templates und -Teile, Blockvorlagen et cetera

Template Part im Template Part: Twenty Twenty-Two nutzt den Header im Large Header - hier im Child Theme
Website-Logo, Titel, Menü und Pfotenspur sind der Header, der Teil des großen, dunklen Headers mit Überschrift und Coverbild ist

Eigene Templates und Template-Teile können Sie auch ohne Child Theme für ein Block Theme wie Twenty Twenty-Two anlegen. Allerdings braucht es dazu vor allem erst einmal ein Verständniskonzept für die Zusammenarbeit von eben diesen Templates und den einzelnen Teilen. Erst wenn Sie verstanden haben, wie zum Beispiel der Header mit dem großen, dunklen Header zusammenarbeitet, können Sie sich Gedanken über eigene Vorlagen machen.

Alle notwendigen Templates sind in Twenty Twenty-Two jedenfalls bereits realisiert. Wenn Sie diese bearbeiten, überlebt ihre Bearbeitung dann auch das nächste Update. Eigene Templates, die über das Notwendige hinausgehen, können Sie dann als HTML-Dateien in dem entsprechenden Ordner hinterlegen.

Auch Blockvorlagen können Sie in einem eigenen Ordner hinterlegen. Einzelne Blockvorlagen habe ich bislang aber immer einfach nur in der functions.php registriert.

Wenn Sie planen, einen speziellen Font einzusetzen, dann müssen dem natürlich auch noch einen Ordner gönnen. Bloggerbrunch nutzt nun für die Überschriften statt Source Serif Pro den Kalam-Font. Wie das geht? Ich werde darauf noch zu sprechen kommen.

Fazit: Ein Child Theme für Twenty Twenty-Two ist schnell erstellt

Grundsätzlich gilt aber erst einmal: Für so ein Child Theme braucht es nicht viel. Drei Dateien – und schon ist Twenty Twenty-Two Mutter oder Vater geworden:

  • style.css
  • theme.json
  • index.php

Alles Weitere erfordert dann schon eine Menge mehr Aufmerksamkeit und viel Neu-Lernen.

Update 08.02.2022

Nun ist auch mein Beitrag zum Host Europe Blog online. Hier geht es auch um WordPress 5.9, das Full Site Editing und Twenty Twenty-Two: WordPress Trends 2022: Was Sie über das Full Site Editing wissen sollten


Beitragsbilder: Britta Kretschmer, Illustrationen des Weißbauchschnäppers, des Grünschwanzjacamars und des Kolibris Public Domain

5 Gedanken zu „Wie Sie ein Twenty Twenty-Two Child Theme erstellen

  1. Sobald ich mein Child-Theme aktiviere, gehen alle Änderungen im Theme-Editor leider verloren. Zumindest im Frontend sieht man diese Änderungen leider nicht mehr. Können Sie vielleicht erklören bitte, wie diese Änderungen trotz Child-Theme erhalten werden können?

  2. Hallo Olaf,

    sorry für die späte Antwort.

    So wie ich es sehe, funktioniert das nur über den Export der Einstellungen im Parenttheme. Das geht im Design Editor über „Ansicht anpassen“ (die drei vertikalen Pünktchen oben rechts neben dem Button für die Stile) > Werkzeuge > Exportieren. WordPress erstellt dann ein zip-Archiv des kompletten Parentthemes.

    Sagen wir, es geht um Änderungen in der single.html. Diese Datei befindet sich im Ordner Templates und würde dann in den Templates-Ordner des Childthemes hochgeladen werden. Somit benutzt das Childtheme die Einstellungen für die single.html des Parentthemes.

    LG, bk

Schreibe einen Kommentar

Die im Rahmen der Kommentare angegebenen Daten werden von mir dauerhaft gespeichert. Cookies speichere ich nicht. Für weitere Informationen siehe bitte meine Datenschutzerklärung.

Deine E-Mail-Adresse wird nicht veröffentlicht.

Nach oben scrollen