Du möchtest dein eigenes WordPress Theme erstellen, bist aber unsicher, wo du anfangen sollst? Obwohl WordPress.org und zahlreiche Theme-Marktplätze tausende schöne und funktionale Themes anbieten, stößt du vielleicht an Grenzen, wenn es um ganz spezielle Design-Wünsche oder individuelle Funktionen geht. Die gute Nachricht: Mit etwas Grundwissen in HTML, CSS und PHP kannst du dein eigenes WordPress Theme selbst erstellen – und dieser umfassende Guide zeigt dir genau, wie das geht.
In diesem Tutorial lernst du alle wichtigen Schritte kennen, um dein eigenes WordPress Template zu erstellen. Vom Einrichten der Entwicklungsumgebung über die ersten Code-Zeilen bis hin zu fortgeschrittenen Techniken wie Child Themes und responsive Design – hier findest du alles, was du brauchst.
Das erwartet dich in diesem Artikel:
- Vollständige Vorbereitung deiner Entwicklungsumgebung
- Grundlagen der WordPress Theme-Struktur
- Schritt-für-Schritt Anleitung zum Erstellen deines ersten Themes
- Child Theme Entwicklung für Update-Sicherheit
- Responsive und Bootstrap-basierte Themes
- Gutenberg-Integration und moderne Best Practices
- Hilfreiche Tools und Software für die Theme-Entwicklung
Du entwickelst für Kunden? Dann brauchst du eine professionelle Domain – jetzt sichern!
Voraussetzungen & Was du mitbringen solltest
Bevor wir mit der eigentlichen Theme-Entwicklung starten, lass uns kurz klären, welche Kenntnisse du idealerweise mitbringen solltest. Keine Sorge – du musst kein Programmier-Profi sein, aber ein paar Grundlagen erleichtern dir den Einstieg erheblich.
Du solltest bereits Erfahrung haben mit:
- HTML: Grundlegende Struktur von Webseiten (Überschriften, Absätze, Listen, Links)
- CSS: Styling von HTML-Elementen (Farben, Schriftarten, Layouts)
- PHP: Grundlagen wie Variablen, Schleifen und Funktionen
- WordPress: Du hast bereits mit WordPress gearbeitet und weißt, was Themes, Plugins und Posts sind
Falls du bei einem dieser Punkte noch Auffrischung brauchst, ist das völlig okay. Du kannst während der Theme-Entwicklung parallel dazulernen – WordPress ist ein hervorragendes "Learning by Doing"-Projekt.
Warum überhaupt ein eigenes WordPress Theme erstellen?
Du fragst dich vielleicht, ob der Aufwand sich lohnt. Hier sind einige überzeugende Gründe:
- Volle Kontrolle: Du bestimmst jedes Detail deines Designs
- Performance: Nur der Code, den du wirklich brauchst – keine Bloat von Universal-Themes
- Individualität: Deine Website sieht aus wie keine andere
- Lerneffekt: Du verstehst WordPress von Grund auf
- Wartung: Du weißt genau, was dein Code macht
- Berufliche Perspektive: Theme-Entwicklung ist eine gefragte Fähigkeit
Entwicklungsumgebung einrichten
Bevor du im Editor deiner Wahl die ersten Code-Zeilen tippen kannst, brauchst du eine geeignete Entwicklungsumgebung. Um mit der WordPress-Theme-Entwicklung zu starten, musst du einen lokalen Webserver auf deinem Computer einrichten. Dafür gibt es verschiedene Lösungen, die dir den Einstieg erleichtern, wie Local by Flywheel, XAMPP oder MAMP. In diesem Artikel erfährst du, wie du diese Tools installierst und WordPress schnell zum Laufen bringst.
Lokalen Webserver installieren
Für die WordPress Theme-Entwicklung benötigst du eine lokale Installation mit:
- Webserver (Apache oder Nginx)
- Datenbank (MySQL oder MariaDB)
- PHP (mindestens Version 7.4, besser 8.0+)
- WordPress (aktuelle Version)
Die einfachsten Lösungen für Anfänger:
Local by Flywheel (empfohlen für Einsteiger)
- Kostenlos und benutzerfreundlich
- Ein-Klick WordPress-Installation
- Integrierte SSL-Zertifikate
- Verfügbar für Windows und Mac
- Download: localwp.com
XAMPP (klassische Lösung)
- Kostenlos und Open Source
- Manuelle WordPress-Installation nötig
- Für Windows, Mac und Linux
- Download: apachefriends.org
MAMP (Mac-Alternative)
- Einfache Einrichtung auf macOS
- Kostenlose Basisversion verfügbar
- Download: mamp.info
WordPress lokal installieren
Nachdem du deinen lokalen Server eingerichtet hast, geht es nun darum, WordPress zu installieren. Lade dazu die neueste Version von WordPress herunter und entpacke die Dateien in den entsprechenden Ordner. Im nächsten Schritt musst du eine Datenbank erstellen und die Installation über deinen lokalen Server starten.
- Lade WordPress herunter von wordpress.org/download
- Entpacke die Dateien in den entsprechenden Ordner:
- Local by Flywheel: Automatisch im App-Ordner
- XAMPP:
htdocs/dein-projekt - MAMP:
htdocs/dein-projekt
- Erstelle eine Datenbank über phpMyAdmin
- Führe die WordPress-Installation aus über
localhost/dein-projekt
Debug-Modus aktivieren – unverzichtbar für Theme-Entwicklung
Um Fehler schnell zu finden und zu beheben, solltest du den WordPress Debug-Modus aktivieren. Das ist ein absolutes Muss für die Theme-Entwicklung!
So aktivierst du WP_DEBUG:
- Öffne die Datei
wp-config.phpim WordPress-Hauptverzeichnis - Suche nach der Zeile:
php
- Ändere sie zu:
php
Erweiterte Debug-Optionen (füge diese Zeilen direkt nach WP_DEBUG ein):
php
Wichtig: Deaktiviere WP_DEBUG_DISPLAY wieder, bevor du dein Theme auf einen Live-Server überträgst!
Empfohlene Code-Editoren
Ein guter Code-Editor kann die Entwicklung deines WordPress-Themes deutlich erleichtern und effizienter machen. Visual Studio Code ist eine der beliebtesten und leistungsfähigsten Optionen, besonders durch seine vielen nützlichen Erweiterungen. Aber auch andere Editoren wie Sublime Text oder PHPStorm bieten jeweils ihre eigenen Vorteile.
Visual Studio Code (am beliebtesten)
- Kostenlos und leistungsstark
- Hervorragende PHP- und WordPress-Extensions
- Integriertes Git
- Syntax-Highlighting für alle relevanten Sprachen
- Download: code.visualstudio.com
Empfohlene VS Code Extensions:
Alternativen:
- Sublime Text: Schnell und elegant
- PHPStorm: Professionelle IDE (kostenpflichtig)
- Atom: Open Source Alternative zu VS Code
Mehrere WordPress-Versionen testen (für fortgeschrittene Entwickler)
Wenn du dein WordPress Theme nicht nur für dich selbst erstellen möchtest, sondern planst, es zu verteilen oder zu verkaufen, solltest du es mit verschiedenen WordPress-Versionen testen. Der Standard ist Kompatibilität mit mindestens den letzten zwei Major-Releases.
Ältere WordPress-Versionen findest du auf der offiziellen Releases-Seite: wordpress.org/download/releases/
Professionelle Lösungen für Multi-Version-Testing:
- Docker: Containerisierte WordPress-Installationen
- Vagrant: Virtuelle Maschinen für Entwicklung
- VVV (Varying Vagrant Vagrants): WordPress-spezifische Vagrant-Konfiguration
WordPress Theme Grundlagen
Bevor du dein erstes WordPress Theme selbst erstellen kannst, ist es wichtig zu verstehen, wie WordPress überhaupt funktioniert und wie Themes in dieses System integriert sind.
Wie WordPress eine Seite aufbaut
WordPress ist ein dynamisches Content Management System. Das bedeutet: Wenn jemand deine Website aufruft, baut WordPress die Seite in Echtzeit aus verschiedenen Komponenten zusammen:
- URL-Analyse: WordPress analysiert die aufgerufene URL
- Query: WordPress fragt die Datenbank nach den passenden Inhalten ab
- Template-Auswahl: WordPress wählt die passende Template-Datei aus deinem Theme
- Rendering: WordPress verarbeitet PHP-Code, fügt Inhalte ein und generiert HTML
- Ausgabe: Der fertige HTML-Code wird an den Browser geschickt
Die WordPress Template-Hierarchie
Ein entscheidendes Konzept beim WordPress Theme Erstellen ist die Template-Hierarchie. WordPress folgt einer klaren Rangfolge bei der Auswahl, welche Template-Datei für welchen Seitentyp verwendet wird.
Beispiel für eine einzelne Seite (Page):
WordPress sucht in folgender Reihenfolge:
page-.php– Spezifische Seite basierend auf URL-Slugpage-.php– Spezifische Seite basierend auf IDpage.php– Allgemeines Seiten-Templatesingular.php– Template für einzelne Posts/Pagesindex.php– Fallback-Template (wird IMMER benötigt)
Beispiel für Blog-Posts:
single-.php– Für Custom Post Typessingle.php– Für normale Blog-Postssingular.php– Allgemeines Single-Templateindex.php– Fallback
Für die Startseite:
front-page.php– Statische Startseitehome.php– Blog-Startseiteindex.php– Fallback
Diese Hierarchie gibt dir enorme Flexibilität: Du kannst für jeden Seitentyp ein eigenes Design erstellen, oder mit wenigen Templates arbeiten und die index.php als Basis nutzen.
Die absolut notwendigen Dateien für ein WordPress Theme
Um ein funktionierendes WordPress Theme zu erstellen, brauchst du minimal nur zwei Dateien:
1. style.css – Die Theme-Stylesheet-Datei
- Enthält CSS für das Design
- Enthält Theme-Informationen im Header-Kommentar
- Pflichtdatei – ohne sie erkennt WordPress dein Theme nicht
2. index.php – Das Haupt-Template
- Fallback-Template für alle Seitentypen
- Enthält die grundlegende HTML-Struktur
- Pflichtdatei – WordPress braucht mindestens ein Template
Empfohlene zusätzliche Dateien (für reale Projekte)
In realen Projekten wirst du neben den grundlegenden Dateien noch viele weitere benötigen, um dein Theme funktional und strukturiert zu gestalten. Zu den wichtigsten gehören Template-Dateien wie header.php, footer.php oder single.php, die jeweils spezifische Bereiche deiner Website steuern. Darüber hinaus kommen funktionale Dateien wie die functions.php und das Screenshot-Bild hinzu, um das Theme weiter anzupassen und zu optimieren.
Template-Dateien:
header.php– Header-Bereich (Logo, Navigation, Meta-Tags)footer.php– Footer-Bereich (Copyright, Footer-Menü, Scripts)sidebar.php– Sidebar mit Widgetssingle.php– Einzelner Blog-Postpage.php– Statische Seitenarchive.php– Archiv-Seiten (Kategorien, Tags, Datum)404.php– Fehlerseitesearch.php– Suchergebnissecomments.php– Kommentarbereich
Funktionale Dateien:
functions.php– Theme-Funktionen und -Featuresscreenshot.png– Vorschaubild (empfohlen: 1200×900 Pixel)
Asset-Ordner (optional aber empfohlen):
Wo werden WordPress Themes gespeichert?
Alle Themes befinden sich im Verzeichnis:
Jedes Theme hat seinen eigenen Unterordner. WordPress erkennt automatisch alle Ordner in diesem Verzeichnis als potenzielle Themes – vorausgesetzt, sie enthalten mindestens eine style.css mit korrektem Header.
Dein erstes WordPress Theme erstellen – Let's Code!
Jetzt wird es praktisch! In diesem Abschnitt erstellen wir gemeinsam Schritt für Schritt dein erstes WordPress Theme. Keine Sorge – wir starten einfach und bauen nach und nach aus.
Schritt 1: Theme-Ordner anlegen
Öffne dein WordPress-Verzeichnis und navigiere zu:
Erstelle hier einen neuen Ordner für dein Theme. Der Name sollte:
- Kleingeschrieben sein
- Keine Leerzeichen enthalten (nutze Bindestriche)
- Beschreibend sein
Beispiel:
Schritt 2: style.css erstellen – Die Identität deines Themes
Erstelle im Theme-Ordner eine neue Datei namens style.css. Der Anfang dieser Datei ist besonders wichtig: Der Theme-Header-Kommentar teilt WordPress alle wichtigen Informationen über dein Theme mit.
Vollständiger style.css Header:
css
Erklärung der wichtigsten Header-Felder:
- Theme Name: Der Name, der im WordPress-Backend angezeigt wird (Pflichtfeld)
- Description: Kurze Beschreibung deines Themes
- Version: Versionsnummer für Updates
- Text Domain: Wichtig für Übersetzungen (sollte dem Ordnernamen entsprechen)
- Tags: Stichwörter zur Kategorisierung (bei öffentlichen Themes relevant)
Schritt 3: index.php erstellen – Das Herzstück deines Themes
Die index.php ist das wichtigste Template deines Themes. Sie wird verwendet, wenn keine spezifischere Template-Datei existiert.
Erstelle eine neue Datei index.php mit folgendem Inhalt:
php
Wichtige WordPress-Funktionen erklärt:
wp_head(): Unverzichtbar! Lädt WordPress-Scripts, Styles und Meta-Tags. Muss im<head>stehen.wp_footer(): Unverzichtbar! Lädt Scripts vor</body>. Wichtig für Plugins.language_attributes(): Fügt Sprach-Attribute für HTML-Tag einbloginfo(): Gibt Website-Informationen aus (Name, Beschreibung, Charset, etc.)body_class(): Fügt dynamische CSS-Klassen zum Body-Tag hinzuhome_url(): URL zur Startseiteesc_url(): Macht URLs sicher (Security Best Practice)
Der WordPress Loop – Das Herzstück der Content-Ausgabe
Wenn du mit WordPress arbeitest, begegnet dir früher oder später der sogenannte WordPress Loop – und ohne ihn läuft gar nichts. Er ist das Herzstück der Content-Ausgabe und entscheidet, welche Inhalte auf deiner Webseite erscheinen. Verstehst du den Loop, verstehst du WordPress – denn hier steuerst du, wie Posts geladen, verarbeitet und ausgegeben werden.
php
Was passiert hier?
have_posts(): Prüft, ob Posts vorhanden sindwhile ( have_posts() ): Durchläuft alle gefundenen Poststhe_post(): Setzt die Post-Daten für den aktuellen Durchlauf- Innerhalb der Schleife kannst du Template-Tags verwenden
Wichtige Template Tags im Loop:
the_title(): Titel des Poststhe_content(): Vollständiger Inhaltthe_excerpt(): Kurzzusammenfassungthe_permalink(): URL zum Postthe_ID(): Post-IDget_the_date(): Veröffentlichungsdatumthe_author(): Autor-Namepost_class(): CSS-Klassen für den Postthe_post_thumbnail(): Beitragsbild (Featured Image)
Schritt 4: Theme aktivieren und testen
Glückwunsch – du hast jetzt ein funktionierendes WordPress Theme erstellt! Jetzt ist es an der Zeit, es zu aktivieren:
- Logge dich in dein WordPress-Backend ein (
http://localhost/dein-projekt/wp-admin) - Gehe zu Design → Themes
- Du solltest dein Theme mit dem Namen sehen, den du in der style.css angegeben hast
- Klicke auf Aktivieren
Tipp: Füge einen Screenshot hinzu (1200×900 Pixel, gespeichert als screenshot.png im Theme-Ordner), damit dein Theme eine Vorschau hat.
Schritt 5: header.php und footer.php auslagern
Für bessere Wartbarkeit solltest du Header und Footer in separate Dateien auslagern. Das ist ein wichtiger Schritt beim professionellen WordPress Theme Erstellen.
Erstelle header.php:
php
Aktualisiere nun deine index.php:
php
">
Keine Beiträge gefunden.
Die Template-Funktionen:
get_header(): Bindet header.php einget_footer(): Bindet footer.php einget_sidebar(): Bindet sidebar.php einget_template_part( 'name' ): Bindet custom Template-Parts ein
functions.php und erweiterte Funktionen
Die functions.php ist das Kontrollzentrum deines Themes. Hier registrierst du Features, lädst Scripts und Styles, und definierst eigene Funktionen. Diese Datei ist optional, aber in der Praxis wirst du sie immer benötigen.
Grundgerüst der functions.php erstellen
Damit dein WordPress-Theme korrekt funktioniert, brauchst du ein solides Fundament – und das beginnt mit der functions.php. In dieser Datei aktivierst du wichtige Theme-Funktionen wie Menüs, Beitragsbilder oder HTML5-Unterstützung. Sobald das Grundgerüst steht, kannst du dein Theme Schritt für Schritt professioneller und flexibler gestalten.
php
Wichtige Theme-Support-Features:
automatic-feed-links: RSS-Feed-Linkstitle-tag: WordPress steuert den<title>-Tagpost-thumbnails: Beitragsbilder aktivierenhtml5: Moderne HTML5-Markup-Unterstützungcustom-logo: Logo-Upload im Customizercustom-background: Hintergrund anpassbarcustom-header: Header-Bild anpassbaralign-wide: Gutenberg Wide/Full Width Unterstützung
Stylesheets und JavaScript richtig laden
Niemals solltest du Styles und Scripts direkt im HTML einbinden (z.B. mit <link> oder <script>-Tags). WordPress hat dafür ein eigenes System, das Konflikte verhindert und Ladezeiten optimiert.
Füge diesen Code zu deiner functions.php hinzu:
php
Parameter von wp_enqueue_style() und wp_enqueue_script():
- Handle: Eindeutiger Name für die Datei
- Source: Pfad zur Datei
- Dependencies: Array von Abhängigkeiten (andere Scripts/Styles, die zuerst geladen werden müssen)
- Version: Versionsnummer (wichtig für Browser-Caching)
- Media/In Footer: Bei Styles: Media-Type (z.B. 'screen'); Bei Scripts: true = im Footer laden
Nützliche WordPress-Funktionen:
get_stylesheet_uri(): URL zur style.cssget_template_directory_uri(): URL zum Theme-Ordnerget_stylesheet_directory_uri(): URL zum aktuellen Theme (wichtig für Child Themes)
Widget-Bereiche (Sidebars) registrieren
Auch wenn sie "Sidebar" heißen – Widget-Bereiche können überall platziert werden: Im Header, Footer, in der Seitenleiste oder mitten im Content.
php
', 'after_title' => '
', ) ); // Footer-Widget-Bereiche register_sidebar( array( 'name' => esc_html__( 'Footer Spalte 1', 'mein-erstes-theme' ), 'id' => 'footer-1', 'description' => esc_html__( 'Erste Footer-Spalte', 'mein-erstes-theme' ), 'before_widget' => '', 'before_title' => '', 'after_title' => '
', ) ); } add_action( 'widgets_init', 'mein_theme_widgets_init' );Widget-Bereich im Template ausgeben:
Erstelle eine sidebar.php:
php
', 'after_title' => '
', ) ); // Footer-Widget-Bereiche register_sidebar( array( 'name' => esc_html__( 'Footer Spalte 1', 'mein-erstes-theme' ), 'id' => 'footer-1', 'description' => esc_html__( 'Erste Footer-Spalte', 'mein-erstes-theme' ), 'before_widget' => '', 'before_title' => '', 'after_title' => '
', ) ); } add_action( 'widgets_init', 'mein_theme_widgets_init' );Weitere nützliche Funktionen für dein Theme
Excerpt-Länge anpassen:
php
Excerpt "Weiterlesen"-Text ändern:
php
Body-Klassen hinzufügen:
php
Wichtiger Hinweis zu Theme vs. Plugin
Eine goldene Regel beim WordPress Theme Erstellen: Funktionalität, die beim Theme-Wechsel erhalten bleiben soll, gehört NICHT in die functions.php!
In die functions.php gehören:
- Design-bezogene Funktionen
- Theme-spezifische Features
- Widget-Bereiche
- Menü-Positionen
- Bildgrößen
In ein Plugin gehören:
- Custom Post Types
- Geschäftslogik
- API-Integrationen
- Shortcodes (wenn nicht rein Design-bezogen)
- Admin-Funktionen
Wenn du oder deine Nutzer das Theme wechseln, sollten keine wichtigen Funktionen verloren gehen!
WordPress Child Theme erstellen
Ein Child Theme ist ein Theme, das von einem anderen Theme (dem "Parent Theme") erbt. Das ist extrem nützlich, wenn du ein bestehendes Theme anpassen möchtest, ohne den Original-Code zu verändern. So bleiben deine Änderungen auch nach Theme-Updates erhalten.
Wann solltest du ein Child Theme erstellen?
Ein Child Theme ist perfekt, wenn du:
- Ein Premium-Theme gekauft hast und es anpassen möchtest
- Ein populäres Theme wie Astra, GeneratePress oder Twenty Twenty-Three verwendest
- Nur kleine Anpassungen an einem bestehenden Theme vornehmen willst
- Das Parent Theme regelmäßig Updates erhält, die du nicht verlieren möchtest
Ein eigenes Theme von Grund auf ist besser, wenn du:
- Vollständige Kontrolle über jeden Aspekt willst
- Ein komplett individuelles Design planst
- Das Theme für Kunden oder zum Verkauf entwickelst
- Performance durch minimalen Code optimieren möchtest
Child Theme Schritt für Schritt erstellen
Schritt 1: Child Theme Ordner anlegen
Erstelle im Verzeichnis wp-content/themes/ einen neuen Ordner:
Naming Convention:
- Verwende den Namen des Parent Themes
- Füge
-childhinzu - Beispiele:
astra-child,generatepress-child,divi-child
Schritt 2: style.css für das Child Theme
Erstelle in deinem Child Theme Ordner eine style.css:
css
Wichtig: Das Feld Template: muss exakt dem Ordnernamen des Parent Themes entsprechen!
Schritt 3: functions.php für das Child Theme
Anders als die style.css wird die functions.php des Child Themes nicht automatisch geladen. Du musst das Parent-Theme-Stylesheet manuell einbinden.
Erstelle functions.php im Child Theme:
php
Wichtige Funktionen für Child Themes:
get_template_directory_uri(): URL zum Parent Themeget_stylesheet_directory_uri(): URL zum Child Theme (oder aktiven Theme)get_template_directory(): Dateipfad zum Parent Themeget_stylesheet_directory(): Dateipfad zum Child Theme
Schritt 4: Child Theme aktivieren
- Gehe zu Design → Themes im WordPress-Backend
- Du solltest jetzt dein Child Theme sehen
- Klicke auf Aktivieren
Fertig! Dein Child Theme ist jetzt aktiv und erbt alle Templates und Funktionen vom Parent Theme.
Templates im Child Theme überschreiben
Das Geniale an Child Themes: Du kannst einzelne Template-Dateien des Parent Themes überschreiben, indem du sie einfach im Child Theme erstellst.
Beispiel: header.php anpassen
- Kopiere die
header.phpaus dem Parent Theme - Füge sie in deinen Child Theme Ordner ein
- Passe sie nach deinen Wünschen an
WordPress wird automatisch die Version aus dem Child Theme verwenden!
Das funktioniert mit allen Template-Dateien:
header.phpfooter.phpsingle.phppage.phparchive.php- Und alle anderen Templates
Tipp: Überschreibe nur die Dateien, die du wirklich ändern musst. So bleiben deine Updates übersichtlich.
Template-Parts überschreiben
Viele moderne Themes nutzen Template-Parts (kleine wiederverwendbare Template-Schnipsel). Auch diese kannst du überschreiben.
Beispiel-Struktur eines Parent Themes:
Im Child Theme überschreiben:
Funktionen im Child Theme ändern
Wenn du eine Funktion aus dem Parent Theme ändern möchtest, kannst du sie im Child Theme einfach neu definieren – wenn sie "pluggable" ist (d.h. mit if ( ! function_exists() ) umschlossen).
Parent Theme functions.php:
php
Child Theme functions.php:
php
Child Theme Best Practices
DO's:
- Nur Änderungen im Child Theme, nicht im Parent Theme
- Kommentiere deine Anpassungen
- Versioniere dein Child Theme (Git)
- Teste nach jedem Parent Theme Update
- Nutze
get_stylesheet_directory_uri()für Child Theme Assets
DON'Ts:
- Niemals das Parent Theme direkt bearbeiten
- Keine unnötigen Dateien kopieren (nur was du änderst)
- Keine wichtigen Funktionen nur im Child Theme (lieber als Plugin)
Responsive WordPress Theme erstellen
Im Jahr 2025 ist responsive Design kein "Nice-to-have" mehr, sondern absolute Pflicht. Über 60% der Website-Besuche erfolgen über mobile Geräte. Ein responsives WordPress Theme passt sich automatisch an verschiedene Bildschirmgrößen an.
Mobile-First Ansatz
Der moderne Standard ist Mobile-First Design: Du designst zuerst für kleine Bildschirme und erweiterst dann für größere Geräte.
Vorteile von Mobile-First:
- Fokus auf das Wesentliche
- Bessere Performance auf mobilen Geräten
- Erzwingt klare Content-Hierarchie
- Einfacher zu optimieren
Viewport Meta-Tag – Der Startpunkt
Das Erste, was du für ein responsives Theme brauchst, ist der Viewport Meta-Tag im <head>:
html
Dieser gehört in deine header.php (was du ja bereits hast, wenn du den obigen Schritten gefolgt bist).
Was macht dieser Tag?
width=device-width: Viewport-Breite = Gerätebreiteinitial-scale=1: Kein initialer Zoom
Media Queries – Das Werkzeug für responsives CSS
Media Queries ermöglichen es dir, CSS-Regeln abhängig von der Bildschirmgröße zu definieren.
Mobile-First Beispiel in deiner style.css:
css
Standard Breakpoints (Richtwerte):
- Mobile: 320px - 767px (Basis, keine Media Query nötig)
- Tablet: 768px - 1023px
- Desktop: 1024px - 1439px
- Large Desktop: 1440px+
Flexbox und CSS Grid für responsive Layouts
Moderne CSS-Techniken machen responsive Design deutlich einfacher:
Flexbox für flexible Ein-Zeilen-Layouts:
css
CSS Grid für komplexe Layouts:
css
Responsive Bilder
Bilder sind oft der größte Performance-Killer auf mobilen Geräten. WordPress hat dafür eingebaute Lösungen.
Responsive Images in Templates:
php
CSS für responsive Bilder:
css
Verschiedene Bildgrößen in functions.php definieren:
php
Mobile Navigation mit Hamburger-Menü
Ein klassisches Problem: Die Navigation passt nicht auf kleine Bildschirme. Die Lösung: Ein Hamburger-Menü.
JavaScript für Mobile Navigation (navigation.js):
javascript
CSS für Hamburger-Icon:
css
WordPress Bootstrap Theme erstellen
Viele Entwickler nutzen Bootstrap, um schneller responsive Themes zu erstellen. Bootstrap ist ein CSS-Framework mit vorgefertigten Komponenten und einem Grid-System.
Bootstrap in WordPress einbinden:
php
Bootstrap Grid in WordPress Templates verwenden:
php
Responsive Testing
Damit dein WordPress-Design auf jedem Gerät professionell aussieht, ist responsive Testing unverzichtbar. Du prüfst damit, wie sich deine Seite auf Smartphones, Tablets und Desktop verhält – und ob Benutzer wirklich gut damit umgehen können. Mit ein paar einfachen Tools erkennst du sofort, wo es hakt – und kannst gezielt optimieren.
Browser DevTools:
- Chrome/Firefox: F12 → Responsive Design Mode
- Teste verschiedene Geräte (iPhone, iPad, Android)
- Achte auf Touch-Targets (mindestens 44×44 Pixel)
Online Tools:
- BrowserStack: Echte Geräte testen
- Responsinator: Schnelle Vorschau
- Google Mobile-Friendly Test
Performance-Check:
- Google PageSpeed Insights
- GTmetrix
- WebPageTest
Gutenberg-Editor Integration
Seit WordPress 5.0 (Ende 2018) ist Gutenberg der Standard-Editor. Wenn du ein WordPress Theme erstellen willst, musst du Gutenberg-Unterstützung einplanen. Gutenberg basiert auf "Blocks" – modularen Content-Elementen, die Redakteure flexibel kombinieren können.
Grundlegende Gutenberg-Unterstützung aktivieren
In deiner functions.php:
php
Editor-Styles – WYSIWYG im Backend
Damit Redakteure im Backend sehen, wie ihr Content aussehen wird, brauchst du Editor-Styles.
Erstelle editor-style.css:
css
Theme-Farbpalette definieren
Gib Redakteuren eine definierte Farbpalette vor, die zu deinem Design passt:
php
Schriftgrößen definieren
php
Block-Styles stylen
Gutenberg-Blöcke haben spezifische CSS-Klassen, die du stylen solltest:
css
Custom Blocks erstellen (für Fortgeschrittene)
Wenn du eigene Gutenberg-Blöcke erstellen möchtest, brauchst du JavaScript (React) Kenntnisse. Hier ein einfaches Beispiel:
block.js:
Block in functions.php registrieren:
php
Tools und Software für die Theme-Entwicklung
Beim WordPress Theme Erstellen kannst du auf zahlreiche hilfreiche Tools zurückgreifen, die dir die Arbeit erheblich erleichtern.
Starter-Themes – Die Abkürzung zum fertigen Theme
Statt von Null anzufangen, kannst du auf Starter-Themes aufbauen. Das sind minimale, gut strukturierte Themes, die als Basis dienen.
Underscores (_s) – Der WordPress-Standard
Underscores (auch "_s" genannt) ist das offizielle Starter-Theme von Automattic (den Machern von WordPress).
Vorteile:
- Von WordPress-Entwicklern erstellt
- Sauberer, kommentierter Code
- Alle wichtigen Templates enthalten
- Modern und best-practice-konform
- Regelmäßig aktualisiert
So nutzt du Underscores:
- Besuche https://underscores.me/
- Gib deinen Theme-Namen ein (z.B. "Mein Custom Theme")
- Optional: Erweiterte Optionen (Sass, WooCommerce-Support)
- Klicke auf "Generate"
- Lade das ZIP herunter und entpacke es in
/wp-content/themes/
Was du bekommst:
- Vollständige Template-Hierarchie
- functions.php mit allen wichtigen Features
- Saubere CSS-Struktur (optional mit Sass)
- Responsive Basis-Styles
- Accessibility-Features
Perfekt für:
- Anfänger, die Struktur lernen wollen
- Profis, die schnell starten wollen
- Jeder, der WordPress-Standards folgen möchte
Weitere beliebte Starter-Themes
Sage (by Roots)
- Modern mit Webpack/Laravel-Blade
- Für erfahrene Entwickler
- https://roots.io/sage/
WP Rig
- Progressive Web App (PWA) ready
- Moderne Build-Tools
- https://wprig.mor10.com/
Bones
- HTML5 Boilerplate basiert
- Mobile-First
- http://themble.com/bones/
Theme-Builder und Visual Editors
Wenn du ein WordPress Theme erstellen möchtest ohne Programmierkenntnisse, gibt es auch No-Code-Lösungen:
GeneratePress + GenerateBlocks
- Leichtgewichtiges Theme
- Visueller Customizer
- Kostenlose Basisversion
- https://generatepress.com/
Kadence Theme
- Starter Templates
- Header/Footer Builder
- Gutenberg-optimiert
- https://www.kadencewp.com/
Blocksy
- Block-Theme
- Schnell und flexibel
- Kostenlose Version verfügbar
- https://creativethemes.com/blocksy/
Wichtig: Diese Tools erstellen keine individuellen Theme-Dateien, die du verteilen kannst. Sie sind eher für den eigenen Gebrauch gedacht.
Development-Tools
Local Development:
- Local by Flywheel: Einfachste Lösung für lokale WordPress-Installation
- DevKinsta: Von Kinsta, ähnlich wie Local
- XAMPP/MAMP: Klassische Webserver-Pakete
Code Editoren:
- VS Code (empfohlen): Mit Extensions wie PHP Intelephense, WordPress Snippets
- PHPStorm: Professionelle IDE, kostenpflichtig aber mächtig
- Sublime Text: Schnell und elegant
Version Control:
- Git: Unverzichtbar für ernsthafte Entwicklung
- GitHub/GitLab: Code-Hosting und Zusammenarbeit
- .gitignore für WordPress: Schließe wp-content/uploads, node_modules etc. aus
Build-Tools (für Fortgeschrittene):
- Webpack: Module Bundler
- Gulp: Task Automation
- Sass/SCSS: CSS-Präprozessor
- npm: Package Manager
Debugging und Testing
Browser Developer Tools:
- Chrome DevTools (F12)
- Firefox Developer Edition
- Safari Web Inspector
WordPress Debug Plugins:
- Query Monitor: Zeigt Queries, Hooks, HTTP-Requests
- Debug Bar: Debugging-Informationen in der Admin Bar
- WP Crontrol: Cron-Jobs debuggen
Performance Testing:
- Google PageSpeed Insights: Performance-Score
- GTmetrix: Detaillierte Performance-Analyse
- WebPageTest: Umfangreiche Tests auf echten Geräten
Accessibility Testing:
- WAVE: Browser-Extension für Accessibility
- axe DevTools: Accessibility-Testing in Chrome
- WordPress Accessibility Plugin: Hilft bei WCAG-Compliance
Theme-Check und Validierung
Wenn du dein Theme öffentlich verteilen möchtest (z.B. auf WordPress.org), muss es bestimmte Standards erfüllen.
Theme Check Plugin:
Wichtige Prüfungen:
- Fehlende Template-Tags (wp_head, wp_footer)
- Veraltete Funktionen
- Security-Issues
- Accessibility-Probleme
- Coding-Standards
Online Validatoren:
- W3C HTML Validator
- W3C CSS Validator
- WordPress Coding Standards (WPCS) mit PHP_CodeSniffer
WordPress Codex und Dokumentation
Offizielle Ressourcen:
- WordPress Developer Handbook: developer.wordpress.org/themes/
- WordPress Codex: codex.wordpress.org
- Theme Handbook: Speziell für Theme-Entwicklung
- Code Reference: developer.wordpress.org/reference/
Community und Support:
- WordPress.org Forums: Fragen stellen
- WordPress Stack Exchange: Q&A-Format
- WordPress Slack: Echtzeit-Chat
- WordPress Meetups: Lokale Events
Häufige Fehler und Troubleshooting
Beim WordPress Theme Erstellen läuft nicht immer alles glatt. Hier sind die häufigsten Probleme und ihre Lösungen.
Problem: "Parse Error" oder "Syntax Error"
Symptome:
- White Screen of Death (leere weiße Seite)
- Fehlermeldung mit Dateipfad und Zeilennummer
Ursachen:
- Vergessenes Semikolon
- Nicht geschlossene Klammern oder Anführungszeichen
- PHP-Syntaxfehler
Lösung:
- Aktiviere WP_DEBUG (siehe oben)
- Prüfe die angegebene Datei und Zeile
- Nutze einen Code-Editor mit Syntax-Highlighting
- Im Notfall: Benenne die fehlerhafte Datei um (z.B.
functions.php.bak) und greife per FTP zu
Problem: Theme erscheint nicht in der Theme-Auswahl
Ursachen:
- style.css fehlt oder ist falsch benannt
- Theme-Header in style.css fehlt oder ist fehlerhaft
- Theme-Ordner nicht im richtigen Verzeichnis
Lösung:
- Prüfe, ob style.css existiert und korrekt benannt ist
- Prüfe den Theme-Header (mindestens "Theme Name:" ist Pflicht)
- Stelle sicher, dass der Theme-Ordner direkt in
/wp-content/themes/liegt
Problem: Styles werden nicht geladen
Ursachen:
- Stylesheet falsch eingebunden
- wp_head() fehlt in header.php
- CSS-Cache im Browser
Lösung:
- Prüfe, ob wp_enqueue_style() korrekt ist
- Stelle sicher, dass <?php wp_head(); ?> im <head> steht
- Leere Browser-Cache (Strg+Shift+R)
- Prüfe Dateipfad: Nutze get_stylesheet_uri() oder get_template_directory_uri()
Problem: JavaScript funktioniert nicht
Ursachen:
- Script falsch eingebunden
- wp_footer() fehlt
- jQuery-Konflikte
Lösung:
- Prüfe wp_enqueue_script() Syntax
- Stelle sicher, dass <?php wp_footer(); ?> vor </body> steht
- Bei jQuery: Nutze wp_enqueue_script('jquery') – nicht manuell einbinden
- Prüfe Browser-Console auf JavaScript-Fehler (F12)
Problem: Featured Images funktionieren nicht
Ursache:
- post-thumbnails Support nicht aktiviert
Lösung:
php
Problem: Menüs werden nicht angezeigt
Ursachen:
- Menüpositionen nicht registriert
- Menü nicht im Backend zugewiesen
Lösung:
- Registriere Menüposition in functions.php:
php
- Weise im Backend ein Menü zu (Design → Menüs)
- Nutze wp_nav_menu() im Template
Problem: Child Theme überschreibt nicht
Ursachen:
- Template-Name in style.css falsch
- Datei an falschem Ort
- Parent-Theme-Styles werden nicht geladen
Lösung:
- Prüfe "Template:" Feld in style.css (muss Parent-Ordnername sein)
- Lade Parent-Styles korrekt mit wp_enqueue_style()
- Nutze get_template_directory_uri() für Parent, get_stylesheet_directory_uri() für Child
Problem: "Headers already sent" Fehler
Ursache:
- Leerzeichen oder Text vor <?php in functions.php
Lösung:
- Entferne alle Zeichen vor dem öffnenden <?php
- Speichere Dateien ohne BOM (UTF-8 ohne BOM)
- Entferne schließendes ?> am Ende von PHP-Dateien (Best Practice)
Problem: Performance-Probleme
Symptome:
- Langsame Ladezeiten
- Hohe Server-Last
Lösungen:
- Optimiere Bilder (TinyPNG, WebP-Format)
- Minimiere HTTP-Requests
- Nutze Lazy Loading für Bilder
- Aktiviere Caching (Plugin wie WP Rocket, W3 Total Cache)
- Nutze ein CDN
- Prüfe mit Query Monitor auf langsame Queries
Debugging-Workflow
Systematisches Vorgehen bei Fehlern:
- Reproduzieren: Kann der Fehler wiederholt werden?
- Isolieren: Welche Datei/Funktion verursacht den Fehler?
- Debug-Log prüfen: Schau in wp-content/debug.log
- Browser-Console: Prüfe auf JavaScript-Fehler
- Theme wechseln: Tritt der Fehler mit Default-Theme auf?
- Plugins deaktivieren: Ist ein Plugin schuld?
- Versionskontrolle: Git nutzen, um Änderungen zurückzuverfolgen
Fazit & Nächste Schritte
Herzlichen Glückwunsch! Du hast jetzt alle grundlegenden Kenntnisse, um dein eigenes WordPress Theme zu erstellen. Von der Entwicklungsumgebung über Template-Dateien bis hin zu responsive Design und Gutenberg-Integration – du kennst nun die wichtigsten Bausteine.
Doch die WordPress Theme Entwicklung ist eine Reise, kein Ziel. Es gibt immer etwas Neues zu lernen – sei es ein neues CSS-Feature, eine WordPress-Funktion oder ein Design-Trend. Das Wichtigste ist: Fang an zu experimentieren!
Dein erstes Theme muss nicht perfekt sein. Wichtig ist, dass du die Grundlagen verstehst und Schritt für Schritt aufbaust. Nutze Starter-Themes wie Underscores als Lernmaterial, studiere den Code erfolgreicher Themes und scheue dich nicht, Fragen in der Community zu stellen.
Die WordPress-Community ist eine der hilfsbereitesten im gesamten Web-Entwicklungs-Bereich. Nutze diese Ressource!
Also: Worauf wartest du noch? Öffne deinen Code-Editor und erstelle dein erstes WordPress Theme!
Du hast jetzt alle Werkzeuge, die du brauchst. Viel Erfolg und vor allem: Viel Spaß beim WordPress Theme Erstellen!








