À mi-chemin entre configuration et code applicatif, functions.php se comporte comme une extension automatiquement activée dès que le thème l’est : tout le code PHP qu’il contient s’exécute à chaque chargement de page, sans qu’aucune activation manuelle ne soit nécessaire.
Ce qu’on y trouve habituellement
Ce fichier accueille typiquement l’enregistrement des zones de widgets via register_sidebar(), la déclaration des emplacements de menu avec register_nav_menus(), l’activation de prises en charge de fonctionnalités avec add_theme_support(), et le chargement des feuilles de style et scripts via l’action wp_enqueue_scripts.
Exemple typique
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style(
'mon-theme-style',
get_stylesheet_uri(),
array(),
wp_get_theme()->get( 'Version' )
);
} );
Pièges fréquents
- Une erreur de syntaxe PHP dans
functions.phppeut rendre l’intégralité du site inaccessible (page blanche), contrairement à une erreur dans une extension isolée qui n’affecte qu’elle-même. - Dans un thème enfant,
functions.phpne remplace pas celui du thème parent : les deux fichiers sont chargés, celui du thème enfant en premier. - Y placer du code métier propre au site (plutôt qu’au thème lui-même) le fragilise : un changement de thème fait disparaître ce code, alors qu’une extension personnalisée y survivrait.