functions.php

Die functions.php ist eine spezielle PHP-Datei, die in jedem WordPress-Theme liegt. Sie wird bei jedem Seitenaufruf automatisch geladen und dient als Schaltzentrale für Theme-Funktionalität: Hier werden Skripte und Styles eingebunden, Theme-Features aktiviert, eigene Shortcodes registriert, Widgets definiert und Hooks gesetzt.

Was in die functions.php gehört

  • Theme-Support aktivieren – Post Thumbnails, Custom Logo, HTML5-Markup, Title-Tag
  • Skripte und Styles einbinden – via wp_enqueue_scripts-Hook
  • Navigationsmenüs registrieren – mit register_nav_menus()
  • Widget-Bereiche (Sidebars) registrieren – mit register_sidebar()
  • Eigene Shortcodes – mit add_shortcode()
  • Action- und Filter-Hooks – WordPress-Verhalten anpassen

functions.php vs. Plugin

Funktionalität, die zum Theme gehört (Layout, Design, Theme-spezifische Features), gehört in die functions.php. Funktionalität, die unabhängig vom Theme weiter existieren soll – also auch nach einem Theme-Wechsel aktiv bleibt –, gehört in ein Plugin. Wer z.B. Custom Post Types in der functions.php registriert, verliert diese beim Theme-Wechsel. Das ist ein häufiger Fehler.

functions.php und Child Themes

Die functions.php eines Child Themes wird zusätzlich zur functions.php des Parent Themes geladen – nicht anstelle davon. Das ermöglicht es, Theme-Funktionalität zu ergänzen, ohne das Parent Theme anzufassen. Bei einem Theme-Update bleiben eigene Anpassungen im Child Theme erhalten.

Sauber halten

Eine unstrukturierte functions.php mit hunderten von Zeilen ist schwer wartbar. Best Practice: Zusammengehörige Funktionen in separate Dateien auslagern und per require_once oder get_template_part() einbinden. Viele moderne Themes organisieren die functions.php als Loader, der thematisch getrennte Dateien (Admin, Frontend, Blöcke, Widgets) einbindet.