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.

