Cartoon-Entwickler mit Brille und blauem Hemd tippt PHP- und CSS-Code auf leuchtendem Laptop, umgeben von WordPress-Blöcken und Theme-Dateien.

Ein WordPress-Theme von Grund auf neu zu entwickeln bedeutet, eine vollständige Theme-Struktur mit eigenen PHP-Dateien, einem Stylesheet und einer Funktionsdatei aufzubauen, ohne auf ein bestehendes Theme oder einen Page Builder zurückzugreifen. Das Ergebnis ist ein schlankes, maßgeschneidertes Theme, das exakt die Anforderungen des Projekts erfüllt und keinerlei unnötigen Code enthält. Die folgenden Fragen beantworten, was technisch dazu gehört und wann dieser Ansatz sinnvoll ist.

Welche Dateien braucht ein WordPress-Theme mindestens?

Ein WordPress-Theme benötigt mindestens zwei Dateien: style.css und index.php. Die style.css enthält einen Kommentarblock am Dateianfang, der WordPress mitteilt, dass es sich um ein Theme handelt, und Metadaten wie Theme-Name, Version und Autor definiert. Die index.php dient als universelles Fallback-Template für alle Seitentypen.

Mit nur diesen zwei Dateien erkennt WordPress das Theme und aktiviert es im Backend. In der Praxis reicht das jedoch selten aus. Für eine funktionsfähige Website braucht man zusätzlich:

  • header.php und footer.php für den gemeinsamen Seitenkopf und Seitenfuß
  • functions.php für Theme-Funktionen, Hooks und das Einbinden von Skripten
  • single.php für einzelne Blogbeiträge
  • page.php für statische Seiten
  • archive.php für Kategorien, Schlagwörter und andere Archivseiten
  • 404.php für die Fehlerseite

WordPress verwendet eine sogenannte Template-Hierarchie, um zu entscheiden, welche Datei für welchen Seitentyp geladen wird. Je spezifischer eine Template-Datei benannt ist, desto höher ist ihre Priorität in dieser Hierarchie.

Wie ist ein WordPress-Theme strukturiert?

Ein WordPress-Theme ist eine Sammlung von PHP-Template-Dateien, einer Stylesheet-Datei und optionalen Assets, die gemeinsam in einem Ordner unter wp-content/themes/ liegen. Die Struktur folgt der WordPress-Template-Hierarchie, die festlegt, welche Datei für welchen Inhaltstyp geladen wird.

Eine typische Custom-Theme-Struktur sieht so aus:

  • style.css mit dem Theme-Header-Kommentarblock
  • index.php als universelles Fallback-Template
  • functions.php für alle PHP-Funktionen und Hooks
  • header.php und footer.php als wiederverwendbare Layoutteile
  • template-parts/ Unterordner für wiederverwendbare Inhaltsfragmente
  • assets/ oder inc/ Unterordner für CSS, JavaScript und PHP-Includes

Innerhalb der Template-Dateien wird mit den WordPress-Funktionen get_header(), get_footer() und get_template_part() gearbeitet, um Redundanz zu vermeiden. Die Trennung von Logik und Darstellung ist dabei ein wichtiges Prinzip: Komplexe Funktionen gehören in die functions.php oder eigene Include-Dateien, nicht direkt in die Templates.

Was gehört in die functions.php eines WordPress-Themes?

Die functions.php eines WordPress-Themes ist die zentrale Steuerdatei für alle themespezifischen Funktionen. Sie wird bei jedem Seitenaufruf automatisch von WordPress geladen und dient dazu, Theme-Features zu registrieren, Hooks einzuhängen und Funktionen bereitzustellen, die in den Templates verwendet werden.

Typische Inhalte der functions.php sind:

  • Theme-Support aktivieren: Funktionen wie add_theme_support('title-tag'), add_theme_support('post-thumbnails') oder add_theme_support('menus')
  • Navigationsmenüs registrieren mit register_nav_menus()
  • Sidebars und Widget-Bereiche mit register_sidebar()
  • CSS und JavaScript einbinden über wp_enqueue_style() und wp_enqueue_script()
  • Custom Post Types und Taxonomien registrieren, sofern sie themespezifisch sind
  • Filter- und Action-Hooks einhängen, um WordPress-Verhalten anzupassen

Wichtig: Die functions.php wächst schnell und wird unübersichtlich. Bei größeren Projekten empfiehlt es sich, Funktionen in separate PHP-Dateien auszulagern und diese über require_once einzubinden. So bleibt der Code wartbar und strukturiert.

Wie bindet man CSS und JavaScript in ein Custom-Theme ein?

CSS und JavaScript werden in einem Custom-WordPress-Theme über die Funktionen wp_enqueue_style() und wp_enqueue_script() eingebunden, die in der functions.php an den Hook wp_enqueue_scripts angehängt werden. Dieser Ansatz stellt sicher, dass Abhängigkeiten korrekt aufgelöst und Dateien nur einmal geladen werden.

Ein typisches Beispiel in der functions.php:

function mein_theme_assets() {
 wp_enqueue_style('mein-theme-style', get_stylesheet_uri());
 wp_enqueue_script('mein-theme-script', get_template_directory_uri() . '/assets/js/main.js', array(), '1.0.0', true);
}
add_action('wp_enqueue_scripts', 'mein_theme_assets');

Einige wichtige Punkte dabei:

  • Der letzte Parameter true bei wp_enqueue_script() lädt das Skript im Footer, was die WordPress-Ladegeschwindigkeit verbessert
  • Mit dem Versionsparameter lässt sich Browser-Caching gezielt steuern
  • Abhängigkeiten wie jQuery werden als Array im dritten Parameter angegeben
  • Für das Haupt-Stylesheet empfiehlt sich get_stylesheet_uri(), das automatisch auf die style.css des Themes zeigt

Niemals sollte CSS oder JavaScript direkt in der header.php oder footer.php per <link>– oder <script>-Tag eingebunden werden. Das umgeht das WordPress-Enqueueing-System und kann zu Konflikten mit Plugins und anderen Themes führen.

Was ist der Unterschied zwischen Child-Theme und Custom-Theme?

Ein Child-Theme baut auf einem bestehenden Parent-Theme auf und überschreibt nur ausgewählte Dateien oder Stile, während ein Custom-Theme vollständig von Grund auf neu entwickelt wird und kein Parent-Theme benötigt. Child-Themes sind ideal, um ein bestehendes Theme anzupassen, ohne dessen Kerndateien zu verändern. Ein Custom-Theme bietet hingegen vollständige Kontrolle über Struktur und Code.

Child-Theme: Anpassung mit Sicherheitsnetz

Ein Child-Theme erbt alle Template-Dateien, Stile und Funktionen des Parent-Themes. Nur die Dateien, die im Child-Theme vorhanden sind, überschreiben die entsprechenden Parent-Dateien. Das ist praktisch, wenn man ein etabliertes Theme wie Astra oder GeneratePress als Basis nutzen möchte, ohne Updates zu verlieren. Der Nachteil: Das Child-Theme ist immer vom Parent abhängig, und unnötiger Code des Parent-Themes wird mitgeladen.

Custom-Theme: Vollständige Kontrolle

Ein Custom-WordPress-Theme enthält ausschließlich den Code, den das Projekt tatsächlich benötigt. Es gibt kein Parent-Theme, keine versteckten Abhängigkeiten und keinen überflüssigen Ballast. Das Ergebnis ist ein schlankes, performantes Theme, das exakt auf die Anforderungen zugeschnitten ist. Der Entwicklungsaufwand ist höher, dafür sind Wartung und Performance langfristig besser kontrollierbar.

Wann sollte man ein WordPress-Theme selbst entwickeln, statt einen Page Builder zu nutzen?

Ein Custom-WordPress-Theme lohnt sich dann, wenn Performance, Skalierbarkeit und sauberer Code höhere Priorität haben als schnelle visuelle Bearbeitung. Page Builder wie Elementor oder Divi sind für viele Projekte sinnvoll, erzeugen aber oft aufgeblähten HTML-Code, unnötige CSS-Schichten und Abhängigkeiten, die Ladezeiten und SEO negativ beeinflussen können.

Ein eigenes Theme empfiehlt sich konkret in diesen Situationen:

  • Hohe Performance-Anforderungen: Wenn Core Web Vitals und Ladezeiten geschäftskritisch sind
  • Komplexe Custom-Funktionalität: Wenn das Projekt individuelle Post Types, Datenstrukturen oder API-Anbindungen erfordert
  • Langfristige Wartbarkeit: Wenn das Theme über Jahre hinweg gepflegt und erweitert werden soll, ohne von einem Page-Builder-Anbieter abhängig zu sein
  • Strikte Design-Vorgaben: Wenn ein Corporate Design pixelgenau umgesetzt werden muss und Page-Builder-Templates das nicht ermöglichen
  • Kein visueller Editor nötig: Wenn der Kunde Inhalte über den Gutenberg-Editor oder ACF pflegt und keinen Drag-and-Drop-Builder benötigt

Page Builder sind dagegen die bessere Wahl für Projekte mit engem Zeitrahmen, häufig wechselnden Layouts oder Kunden, die selbst stark am Design arbeiten. Die Entscheidung hängt letztlich vom Verhältnis zwischen Entwicklungsaufwand, Flexibilitätsbedarf und langfristigen Betriebskosten ab.

Wie WP-Profi bei der WordPress-Theme-Entwicklung unterstützt

Wir bei WP-Profi entwickeln Custom-WordPress-Themes, die keine Kompromisse machen. Statt auf aufgeblähte Page Builder zu setzen, programmieren wir individuelle Themes von Grund auf, die exakt auf die Anforderungen Ihres Unternehmens zugeschnitten sind. Das bedeutet für Sie:

  • Schlanker, wartbarer Code ohne unnötige Abhängigkeiten oder Plugin-Ballast
  • Optimale Ladezeiten durch sauberes Enqueueing, minimierte Assets und strukturierte Template-Hierarchie
  • Vollständige Designfreiheit nach Ihren Corporate-Design-Vorgaben, pixelgenau umgesetzt
  • Langfristige Wartbarkeit durch dokumentierten, strukturierten Code, den unser Team jederzeit erweitern kann
  • Laufende Absicherung durch unsere WordPress-Wartungspakete, die Ihr Custom-Theme dauerhaft aktuell und sicher halten

Ob Sie ein bestehendes Theme ablösen, ein neues Projekt aufsetzen oder ein bestehendes Custom-Theme optimieren möchten: Wir begleiten Sie vom Konzept bis zum Launch. Fordern Sie jetzt Ihre unverbindliche Beratung an und erfahren Sie, wie ein maßgeschneidertes WordPress-Theme Ihre Website auf das nächste Level hebt.

Ähnliche Artikel

Dieser Inhalt wurde mithilfe von KI erstellt und kann Fehler enthalten.

Profi-Check für deine Website

Prüfe dein WordPress mit unserem kostenlosen Webseiten-Check und erhalte ausführliche Ergebnisse und Handlungsempfehlungen zur Performance, Sicherheit, Barrierefreiheit und SEO.