Experts maintenance WordPress depuis 2016 | 4.7/5 avis vérifiés

Tout savoir sur le fichier functions.php dans WordPress

Nicolas Lecat - Expert WordPress
Tout savoir sur le fichier functions.php dans WordPress
Sommaire

Le fichier functions.php est un élément central de tout site WordPress. Il agit comme le cœur de la personnalisation de votre thème, offrant un accès direct aux fonctionnalités de WordPress grâce au langage PHP.

Comprendre comment utiliser et modifier ce fichier est essentiel pour quiconque souhaite réellement maîtriser son site. Que vous cherchiez à ajouter un extrait de code simple ou à modifier des fonctions existantes, ce guide vous fournira les informations nécessaires.

Comprendre le rôle de function php dans WordPress

Alors bien sûr que serait l’intérêt d’un thème WordPress sans ce fichier ? Le functions.php est, comme son nom l’indique, là pour accueillir vos fonctions.

Ce fichier, présent dans chaque thème WordPress, est exécuté automatiquement par WordPress lorsqu’un utilisateur accède à votre site. Il contient du code PHP, qui permet d’ajouter ou de modifier des options du CMS (Content Management System).

C’est un des points de personnalisation les plus importants de WordPress. Le fichier permet d’ajouter de nouvelles fonctionnalités à votre site, en agissant directement sur le coeur de WordPress, il permet de le personnaliser bien au delà des options d’un simple thème ou plugin.

Il est généralement utilisé pour étendre, personnaliser ou même remplacer les fonctionnalités natives de WordPress et de votre thème. Vous pouvez y ajouter des extraits de code (snippets) pour des actions variées : créer des types de contenu personnalisés, ajouter des shortcodes, ou modifier l’affichage de certains éléments.

En bref, c’est un fichier puissant et flexible qui est utilisé par tous les développeurs de sites.

Où trouver le fichier function php sur votre site

Le functions.php est situé dans le répertoire de votre thème WordPress actif. Vous ne le trouverez donc pas dans le dossier /wp-content de base, mais à l’intérieur du dossier de votre thème.

Vous aurez donc un chemin de type : /wp-content/themes/nom-de-votre-theme/functions.php. Pour accéder à ce fichier, vous pouvez utiliser un client FTP comme FileZilla ou l’éditeur de fichiers intégré à votre hébergement web.

Vous pouvez également utiliser l’éditeur de thème intégré à WordPress, en accédant à votre tableau de bord. Notez qu’il faut être prudent avec cette méthode.

Si vous modifiez directement le functions.php du thème parent et que votre thème est mis à jour, vos modifications seront écrasées, perdues et vous devrez tout recommencer. Pour éviter cette situation, la pratique recommandée est d’utiliser un thème enfant, que l’on appelle aussi « child theme ».

Un thème enfant permet de conserver vos modifications lors des mises à jour, en agissant de manière indépendante du thème parent. Nous reviendrons sur ce point.

Modification du fichier functions php: bonnes pratiques

Modifier le fichier functions.php est une chose, le faire correctement, en est une autre. C’est l’un des points qui différencie un débutant d’un développeur wordpress confirmé.

Voici quelques bonnes pratiques à mettre en œuvre avant de vous lancer :

  • Utilisez un thème enfant : C’est la recommandation numéro un. Un thème enfant est un thème qui hérite des styles et fonctionnalités de votre thème principal (le parent). Les modifications dans un thème enfant n’affecteront pas votre thème parent, et ne seront donc pas effacées par les mises à jour. Vous pouvez en apprendre plus sur les thèmes enfants ici.
  • Faites des sauvegardes régulières : Avant de modifier le fichier, il est conseillé de faire une sauvegarde de celui-ci afin de pouvoir facilement rétablir votre site en cas de problème. Vous pouvez aussi sauvegarder toute votre base de données.
  • Évitez l’éditeur de thème de WordPress : Bien que pratique, cet éditeur est sensible aux erreurs de syntaxe. La moindre erreur peut rendre votre site inaccessible, ce que l’on appelle « l’écran blanc » de WordPress. Si cela se produit, vous ne pourrez plus accéder à l’administration de votre site web.
  • Utilisez un éditeur de code : Les éditeurs de code comme VS Code, Sublime Text ou Atom proposent une coloration syntaxique, qui permet de mieux structurer votre code, et de limiter les erreurs.

Ces conseils simples mais essentiels vous aideront à modifier le fichier functions.php de manière sereine et sécurisée.

Où placer votre code dans functions.php

A quel endroit insérer son code ? La bonne pratique est de placer votre code à la fin du fichier, juste avant la balise de fermeture ?> si elle est présente (ce qui est souvent le cas).

Si il n’y en a pas, ce n’est pas un problème, vous pouvez ajouter votre code à la suite des autres fonctions. Mais attention à la cohérence de votre code.

Voici un exemple de code basique que vous pouvez ajouter à votre fichier:


<?php 
// Ceci est un commentaire 

function exemple_function() { 
  // Le code de votre function ici
}

Dans cet exemple, exemple_function est le nom de la fonction que nous créons, et nous avons placé du code dans son bloc. Vous devrez adapter le nom et le contenu en fonction de vos propres besoins.

Comment ajouter des fonctionnalités avec function php

Le fichier functions.php est principalement utilisé pour étendre les fonctionnalités de base de WordPress. Voyons quelques exemples concrets d’ajouts possibles.

Vous pouvez par exemple ajouter des supports de thumbnails, ou modifier la longueur des extraits de vos articles. Le fichier functions.php de votre thème enfant est l’endroit idéal pour placer vos personnalisations.

Par exemple, si vous souhaitez ajouter le support des images mises en avant (thumbnails) pour vos articles, vous pouvez utiliser le code suivant :


<?php
add_theme_support( 'post-thumbnails' );

Ce simple extrait de code active le support des images à la une, qui apparaitront alors dans votre administration WordPress.

Utiliser les hooks de WordPress pour enrichir function php

Que sont les hooks dans WordPress ? Les hooks (filtres et actions) sont des points d’accroche qui permettent d’intervenir sur le fonctionnement de WordPress.

Ils sont essentiels pour le développement de thèmes ou de plugins personnalisés. On parle de « hooks » car ils vous donnent la possibilité de « s’accrocher » à des actions existantes ou de filtrer le résultat avant qu’il ne soit affiché.

Il existe deux types de hooks : les filtres (filters) et les actions (actions).

  • Les filtres : Ils vous permettent de modifier les données avant qu’elles ne soient traitées ou affichées. Vous pouvez par exemple modifier le texte d’un article avant de l’afficher sur votre site.
  • Les actions : Elles vous permettent d’exécuter une fonction à un point précis lors du déroulement d’une requête WordPress. Vous pouvez par exemple ajouter un code particulier lorsque WordPress charge le header.

L’utilisation des hooks permet d’éviter de modifier directement les fichiers principaux de WordPress ou de votre thème. Consultez ce guide complet sur les hooks pour plus d’informations.

Exemples concrets d’utilisation des hooks dans function php

Imaginons que vous souhaitiez modifier la longueur par défaut des extraits affichés dans votre blog. Voici un exemple d’utilisation d’un filtre (excerpt_length):


<?php
function custom_excerpt_length( $length ) {
    return 30;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Dans cet exemple, on utilise le filtre excerpt_length, et on retourne une valeur de 30 (mots). Le troisième argument 999 permet de s’assurer que notre filtre est exécuté après tous les autres filtres.

Cela évite que notre modification ne soit écrasée par une autre. Si vous souhaitez modifier le texte du lien « lire la suite » à la fin de votre extrait, voici comment faire :


<?php
function custom_excerpt_more( $more ) {
    return '... Lire la suite';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );

Ce filtre excerpt_more remplace le texte par défaut par un lien « lire la suite », renvoyant directement vers le post original.

Comment ajouter des snippets de code dans function php

Les snippets de code sont des extraits de code PHP que vous pouvez copier-coller dans votre functions.php. Ils permettent de rapidement ajouter des fonctionnalités personnalisées sans avoir à écrire un plugin complet.

Nous allons voir ensemble comment ajouter et organiser ces snippets de manière efficace.

Méthodes pour ajouter des snippets

Il existe plusieurs façons d’ajouter des snippets à votre functions.php. On peut par exemple les copier-coller directement depuis un site web, ou depuis un code que vous avez généré vous-même.

La méthode la plus simple est le copier-coller :

  1. Trouvez le snippet : Sur des blogs spécialisés ou des forums par exemple.
  2. Copiez le code : Sélectionner le code et le copier.
  3. Ouvrez le fichier functions.php : Utilisez un client FTP ou l’éditeur de thème de WordPress.
  4. Collez le code : En bas du fichier, après le dernier snippet si il y en a.
  5. Sauvegardez : Après avoir modifié le fichier, enregistrez vos modifications.

Si vous ajoutez un nombre important de snippets, nous allons voir comment structurer votre fichier pour le rendre plus lisible.

Structurer votre code pour plus de clarté

Quand vous commencez à avoir plusieurs modifications dans votre fichier, il est essentiel d’organiser votre code pour plus de clarté, et pour faciliter la maintenance par la suite. Un code bien rangé sera bien plus simple à modifier.

Voici quelques conseils pour cela :

  • Utiliser des commentaires : Les commentaires sont des lignes de code que WordPress ne lit pas. Ils sont très utiles pour décrire ce que fait une fonction. On utilise // en début de ligne pour écrire un commentaire sur une ligne ou / / pour un commentaire sur plusieurs lignes.
  • Regrouper les snippets par fonctionnalité : Par exemple, toutes les modifications sur le menu, puis toutes les modifications d’affichage d’articles etc.
  • Créer des fonctions réutilisables : Si un snippet est utilisé plusieurs fois, il peut être converti en fonction afin d’optimiser votre code.

Une bonne organisation de votre code permet d’éviter les erreurs et facilite la gestion de votre site à long terme. C’est une pratique fortement recommandée dans le développement.

function php : personnalisations courantes

Le fichier functions.php permet d’effectuer de très nombreuses personnalisations. Vous pouvez ainsi agir sur votre front et sur votre administration WordPress.

Voyons ensemble quelques exemples fréquents.

Personnaliser l’interface d’administration

Vous souhaitez libeller votre zone d’administration WordPress en marque blanche ? Il est en effet tout à fait possible de modifier le nom ou le logo apparaissant dans votre back office.

Voici un extrait de code à ajouter dans votre fichier :


<?php
function custom_admin_footer() {
  echo 'Réalisé par MonEntreprise | Tous droits réservés.';
}
add_filter('admin_footer_text', 'custom_admin_footer');

Dans cet exemple, on a personnalisé le texte du pied de page de l’interface d’administration. Vous pouvez également modifier le logo WordPress qui apparait dans l’en-tête en utilisant le hook « admin_head ».

Modifier le menu WordPress

Le menu est un élément essentiel de votre site web. Vous pouvez le personnaliser directement via l’interface, mais aussi via le fichier functions.php.

Voici par exemple comment ajouter une classe CSS à votre menu:


<?php
function add_class_to_menu_item( $classes, $item ) {
    $classes[] = 'my-custom-class';
    return $classes;
}
add_filter( 'nav_menu_css_class', 'add_class_to_menu_item', 10, 2 );

Dans cet exemple, on a ajouté une classe « my-custom-class » à chaque élément de notre menu. Vous pouvez ensuite personnaliser le style de votre menu avec cette classe dans votre fichier CSS.

Gérer les extraits de contenu (excerpt)

Voulez-vous modifier le texte qui apparaît après l’extrait dans vos publications ? Vous pouvez agir directement sur les extraits par le biais du functions.php.

On a vu plus haut comment agir sur la longueur des extraits, vous pouvez également modifier le texte par défaut comme ci-dessous :


<?php
function custom_excerpt_text( $more ) {
    return '... En savoir plus';
}
add_filter( 'excerpt_more', 'custom_excerpt_text' );

Avec cet extrait de code, vous pouvez changer le texte qui s’affiche après chaque extrait, avec un lien vers l’article original.

Erreurs fréquentes et comment les éviter

Modifier le fichier functions.php peut être risqué si l’on n’est pas familier avec le langage PHP. La moindre erreur de syntaxe peut entrainer des erreurs, et donc la page blanche.

Il est important d’identifier les erreurs fréquentes pour les éviter.

Les erreurs de syntaxe

Les erreurs de syntaxe sont les plus fréquentes lors de la modification du functions.php. Il peut s’agir d’un point-virgule manquant, d’une parenthèse non fermée ou d’une faute de frappe sur une ligne.

Ces erreurs peuvent entrainer l’apparition d’une erreur PHP ou « l’écran blanc » de WordPress. Vous ne pouvez donc plus accéder à votre site web.

Pour les identifier, suivez ces quelques conseils :

  • Utilisez un éditeur de code : Avec une coloration syntaxique, qui permet de repérer les erreurs.
  • Vérifier l’emplacement : Si vous avez plusieurs lignes, vérifiez que vous n’avez pas fait d’erreur en plein milieu d’un bloc de code.
  • Utiliser un débogueur PHP : Cette solution sera plus difficile à utiliser pour un non-développeur. Mais des plugins spécialisés peuvent vous aider.

Les conflits de code

Il peut arriver que deux fonctions aient le même nom, ou qu’un même hook soit utilisé plusieurs fois. Dans ce cas, des conflits apparaissent et des erreurs sont à prévoir.

Pour éviter cela :

  • Utilisez des noms de fonctions uniques : Les noms de fonctions doivent être propres à chaque action. En utilisant votre nom, ou l’abréviation de votre nom de société, vous éviterez un potentiel conflit avec un plugin ou un thème.
  • Vérifiez l’existence des hooks : Il faut vous assurer qu’un hook n’est pas déjà utilisé par un plugin ou un autre thème. La documentation WordPress en ligne peut vous y aider.

Et comment résoudre les problèmes si vous obtenez une page blanche après avoir personnalisé ce fichier ?

Si vous obtenez un écran blanc (white screen of death), cela signifie qu’une erreur PHP a été détectée. Pas de panique, il y a des solutions !

  • Activer le mode debug : Modifier le fichier wp-config.php pour activer les erreurs : define( 'WP_DEBUG', true );. Cela vous affichera l’erreur sur votre site web.
  • Revenir à une version antérieure : Grâce à votre sauvegarde, restaurez votre site avec une version où l’erreur ne se produisait pas.

  • Contacter votre support : Si l’erreur persiste, faites appel à des experts de WordPress. C’est d’ailleurs ce que propose Hostay pour la sécurité de votre site, un support personnalisé, joignable directement par mail ou sur la ligne portable de votre interlocuteur dédié.

Sécuriser son fichier functions php

Le fichier functions.php est une porte d’entrée potentielle pour les pirates informatiques si on ne le protège pas. En effet, un code mal protégé peut exposer votre site à des failles de sécurité.

Voyons quelques pratiques à mettre en place pour se prémunir de cela.

Limiter les accès

Il est impératif de protéger l’accès au functions.php, notamment en limitant l’accès aux fichiers sensibles via un fichier .htaccess ou des règles de sécurité au niveau de votre serveur. Si l’accès est trop permissif, n’importe quel script malveillant pourrait tenter d’injecter un code dans votre functions.php.

Voici quelques actions possibles :

  • Utiliser un plugin de sécurité : Des plugins comme Wordfence ou Sucuri permettent de sécuriser votre site, en bloquant par exemple des accès suspects. Consultez notre guide sur les meilleurs plugins de sécurité.
  • Modifier les droits sur les fichiers : Pour limiter l’accès aux fichiers via l’outil ftp par exemple. Il ne faut pas que votre fichier soit accessible en écriture.
  • Désactiver l’édition des thèmes : Vous pouvez désactiver la possibilité d’éditer les fichiers depuis l’administration de WordPress (via un plugin par exemple).

Vérification du code

Il est essentiel de vérifier et de valider le code que vous ajoutez à votre fichier. Cela permet d’éviter de potentielles failles de sécurité, en vous assurant que le code que vous ajoutez n’est pas malveillant.

  • Copier-coller depuis des sources fiables : Ne prenez pas de code depuis des sites ou des sources peu fiables.
  • Faites auditer votre code : Une personne avec de l’expérience dans la sécurité informatique peut valider votre code. N’hésitez pas à faire appel à des professionnels pour cela.

Fichier function php et multisite WordPress (WPMU)

Comment attribuer des functions différentes pour chaque site en utilisant WPMU ? WordPress multisite (WPMU) est une fonctionnalité de WordPress qui permet de gérer plusieurs sites depuis une seule installation.

Dans le cas d’un multisite, chaque site du réseau peut avoir son propre thème activé, et donc son propre functions.php. Les modifications de ce fichier n’affectent que le site sur lequel le fichier est installé.

Cependant, il y a quelques points à considérer :

  • Les themes enfants sont recommandés : Comme pour un site classique, vous devrez utiliser un thème enfant pour chaque site de votre réseau.
  • Les fonctionnalités partagées : Si vous souhaitez utiliser les mêmes fonctionnalités sur l’ensemble du réseau, vous pouvez utiliser un plugin qui sera actif sur tous les sites, ou le code pourrait être mis dans le fichier mu-plugins. Ce dernier est un dossier permettant de faire des modifications communes pour l’ensemble du réseau multisite.

La gestion d’un fichier function sur un multisite demande une organisation particulière. On peut facilement modifier un site et oublier l’autre.

Conclusion : Maîtriser function php pour une personnalisation optimale

Le fichier functions.php est un outil puissant et indispensable pour tout utilisateur de WordPress qui souhaite aller plus loin dans la personnalisation de son site. Comprendre son fonctionnement et maîtriser les bonnes pratiques est une étape essentielle pour la personnalisation et la gestion de votre site web.

Si vous débutez avec WordPress, commencez par nos guides pratiques. En utilisant des thèmes enfants, en respectant les bonnes pratiques de codage, vous pourrez profiter pleinement de ce fichier.

Nous espérons que cet article vous a éclairé sur la gestion du functions.php. N’hésitez pas à partager votre expérience ou à nous faire part de vos questions.

Hostay reste à votre disposition pour toute problématique liée à WordPress, que ce soit une erreur 500, un problème de piratage ou un souci lors de la mise à jour de votre site. Vous pouvez contacter directement Nicolas, notre directeur support, pour échanger sur vos besoins en matière d’hébergement et de maintenance WordPress.

Il vous proposera des solutions adaptées, avec une sécurité maximum et une grande réactivité.

Hostay : L’assistance technique WordPress ultra-réactive

Une urgence ?
Je suis Nicolas, responsable du support technique Wordpress chez Hostay. Besoin d'aide ? Appelez-moi de 9h à 18h.
Diagnostic gratuit en 10 minutes