WordPress erlaubt es einem, das Aussehen des eigenen Blogs durch sogenannte „Themes“ zu verändern. In der Standard-Installation werden bereits einige dieser Designs („TwentyTwelve“, „TwentyThirteen“) mitgeliefert und können im Administrationsbereich under Design / Themes
aktiviert werden.
Die im Theme enthaltenen Dateien können über den Editor (Design / Editor
) verändert werden. Am häufigsten werden vermutlich die Stylesheets (style.css
), die Kopf- und Fußzeilen (header.php
und footer.php
), die Vorlage für Beiträge (single.php
) sowie Theme-Funktionen (functions.php
) an die eigenen Bedürfnisse angepasst bzw. erweitert.
Problemtaisch wird es, wenn es ein Update des Themes gibt. Dabei gehen in der Regel alle Änderungen (z.B. geänderte Farben im StyleSheet) verloren.
Um ein Theme zu verändern, ohne die ursprünglichen Dateien zu verändern, kann man in sogenanntes „Child-Theme“ erstellen. Ein Child-Theme ist ein eigenes Theme, enthält allerdings nur diejenigen Dateien, die Du tatsächlich verändern möchtest. Die übrigen Dateien werden aus einer von Dir benannten Vorlage („Template“, „Eltern-Theme“) verwendet.
- Erstelle zunächst einen neuen Ordner (z.B. mit dem Namen „Mein_Design“) im Verzeichnis
/wp-content/themes
. - Jedes Child-Theme benötigt eine Datei mit dem Namen
style.css
. Diese Datei wird von WordPress nach den Informationen über das Theme (Name, Autor, Eltern-Theme,…) durchsucht.
Erstelle also eine Datei mit dem Namenstyle.css
und folgendem Inhalt:/* Theme Name: Twenty Thirteen (Fenon) Theme URI: http://fenon.de/ Description: Mein eigenes Theme basierend auf Twenty Thirteen Author: Vorname Nachname Author URI: http://fenon.de/infos/ Template: twentythirteen Version: 0.1 */
In diesem Beispiel wird das Theme „twentythirteen“ aus dem Ordner
/wp-content/themes
als Vorlage (Template) verwendet. - Das neue Theme ist jetzt bereits mit den von Dir gemachten Angaben in den Design-Einstellungen sichtbar und kann aktiviert werden. Allerdings überschreibt diese neue
style.css
-Datei alle CSS-Angaben, die in der verwendeten Vorlage („twentythirteen“) gemacht wurden. In Deiner eigenenstyle.css
-Datei stehen allerdings noch keine CSS-Angaben drin.
Ein einfacher Weg ist, zunächst alle Angaben der Theme-Vorlage hinzu zu laden und im Anschluss eigene Angaben zu schreiben. Der Inhalt Deiner style.css-Datei könnte also folgendermaßen aussehen:/* Theme Name: Twenty Thirteen (Fenon) Theme URI: http://fenon.de/ Description: Mein eigenes Theme basierend auf Twenty Thirteen Author: Vorname Nachname Author URI: http://fenon.de/infos/ Template: twentythirteen Version: 0.1 */ /* Alle Angaben aus Template hinzuladen */ @import url("../twentythirteen/style.css"); /* Eigene Angaben machen */ header#masthead { background: #D0E5B7; } code { background: #ccc; } h1.entry-title { margin: .5em 0; padding: .5em .25em; border-radius: 10px; background: #D0E5B7; }
- Bei einem Update des Themes „twentythirteen“ bleiben von nun an Deine Änderungen erhalten. Allerdings kann es durchaus passieren, dass sie unwirksam werden. Zum Beispiel dann, wenn sich durch das Update die HTML-Struktur oder die Namen von Elementen ändern.
- Wie bereits bei der Datei
style.css
, überschreiben auch alle hinzugefügten*.php
-Dateien die Inhalte der PHP-Dateien der verwendeten Vorlage – mit Ausnahme der Dateifunctions.php
. Falls Du eine eigenefunctions.php
-Datei erstellen solltest, werden beide Dateien geladen. Dabei wird Deine eigenefunctions.php
-Datei vor der functions.php-Datei aus der Vorlage geladen.
Daher eignet sich die functions.php besonders gut um neue Funktionen zum Template hinzuzufügen, da man keine Angaben aus der Vorlage kopieren muss. Das gilt insbesondere dann, wenn man sie im Zusammenhang mit Action-Hooks verwendet (siehe auch: add_action()):<!--?php function nach_fusszeile( $name ) { ?--> Eigener Text nach der Wordpress-Fusszeile <!--?php } // ENDE: nach_fusszeile() add_action( 'wp_footer', 'nach_fusszeile' ); ?-->
Weitere Informationen findest Du auf der WordPress Homepage, auf ThemeShaper oder Im Blog von Wlad Leirich
2 Gedanken zu „In wenigen Schritten ein „eigenes“ WordPress Theme erstellen“