Child-Themes sollen Parent Themes ergänzen und eine bequeme Art, solche Ergänzungen vorzunehmen ist, Templates des Parent Theme zu kopieren und dann nach Belieben anzupassen. Da aber nicht jeder Theme-Entwickler ein eigenes Template archive.php
, page.php
, category.php
usw. erstellt, sondern vielleicht lieber mit Coditional Tags und eigenen Funktionen eine abweichende Gestaltung für die unterschiedlichen Inhalte umsetzt und vielleicht wie in deinem Fall Template-Parts verwendet, ist diese Methode nicht immer optimal.
Möchte ich ein eigenes Template, kopiere ich gerne die index.php
des Parent Themes (das Template muss ja vorhanden sein) und passe sie nach meinen Vorstellungen an. Dabei geht es vor allem darum, nicht jede Zeile Code neu schreiben zu müssen. Das Template wird unter Umständen <div>
-Tags mit eigenen CSS-Klassen verwendern, um z.B. den Inhalt in einem Rahmen („Page Wrapper“) auszugeben. Das nachzuschlagen und abzutippen ist ineffizient, ein vorhandenes Template zu kopieren geht schneller.
Damit ein Template überhaupt verwenden wird, gibt es zwei Methoden: Entweder gibst du dem Template einen Template Header, also einen Kommentar in dem der Template Name: Mein Template
steht. Dann kannst du beim Bearbeiten von Seiten dieses Template manuell auswählen. Oder du überlässt WordPress die automatische Auswahl, wobei WordPress auf die Template Hierarchy zurückgreift.
Template Hierarchy bedeutet, dass WordPress vor Auslieferung einer Website die Art des Inhalt prüft (handelt es sich um eine statische Seite, einen Beitrag, ein Attachment, eine Kategorie, ein Autorenarchiv, eine Startseite, …) und dann nach einem festgelegten Fallback-Plan nach einem möglichst passenden Template sucht (zum Vergrößen anklicken):

Den Plan musst du von links nach rechts lesen: Hast du eine Seite „Impressum“ erstellt und WordPress soll diese Seite darstellen, sucht es zuerst nach einem Template page-impressum.php
(entspricht Muster page-{$slug}.php
). Gibt es das nicht, sucht WordPress nach einem Template für die ID der Seite (Muster page-{$ID}.php
und fällt WordPress sonst auf das allgemeinere page.php
zurück oder verwendet das noch allgemeiner singular.php
für die Darstellung einzelner Inhalte (im Gegensatz zu Beutragsübersichten etwa auf der Beitragsseite oder in Archiven). Gibt es das auch nicht, wird eben index.php
verwendet, das in jedem Theme vorkommen muss.
Die Suche erfolgt immer zuerst im Child Theme, dann im Parent Theme: Gibt es ein page-impressum.php
im Child-Theme? Im Parent-Theme? Gibt es ein page-42.php
im Child-Theme? Im Parent Theme? usw.
Nochmal zusammenfassend: wenn du für eine Seite „Über mich“ ein eigenes Template verwenden möchtest, ist ein möglicher Weg, ein Child-Theme anzulegen, indem du das Template index.php
des Parent-Theme kopierst und in page-ueber-mich.php
umbenennst. Danach kannst du das Template nach Belieben ändern. Über die Template-Hierarchie wird das Template der Seite automatisch zugewiesen.
Wenn du für die Seiten Sonne
, Strand
und Meer
eine einheitliche Gestaltung möchtest, die von der Gestaltung aller anderen Seiten abweicht, kopierst du wieder die Datei index.php
des Parent-Theme, gibts ihr einen willkürlich gewählten Namen (urlaub.php
) und setzt in der Datei einen Template-Header
<?php
/**
* Template Name: Urlaub
*/
Das Template kannst du dann in der Sidebar den Seiten zuweisen:
