Que faut-il inclure dans le fichier functions.php


Description

Dans cette leçon, vous apprendrez que les thèmes WordPress incluent souvent un fichier nommé functions.php, dans lequel il est possible d’ajouter des fonctionnalités uniques et des fonctions personnalisées. Cependant, les extensions sont également destinées à ajouter des fonctionnalités à votre site. Quand devez-vous utiliser functions.php pour ajouter votre code personnalisé et quand devez-vous utiliser des extensions ? Cette leçon vous aidera à comprendre la différence entre les deux.

Objectifs

Après avoir terminé cette leçon, vous serez capable de :

  • Reconnaître et identifier les utilisations de functions.php par rapport à l’utilisation d’extensions pour ajouter des fonctionnalités.
  • Expliquer quand utiliser ou ne pas utiliser des fonctions.

Compétences préalables

Vous serez mieux préparé à suivre cette leçon si vous possédez :

  • Des connaissances de base sur la création d’un thème et d’une extension
  • Une connaissance élémentaire de PHP et du code WordPress

Questions préparatoires

  • Savez-vous installer et activer des thèmes depuis le tableau de bord WordPress ?
  • Disposerez-vous d’un site WordPress de test hébergé localement ou à distance à utiliser pendant le cours ?
  • Êtes-vous à l’aise avec l’utilisation d’un éditeur de texte pour modifier du code ?
  • Avez-vous déjà ajouté des fonctionnalités personnalisées à votre site WordPress ?
  • Êtes-vous familiarisé avec la hiérarchie des fichiers des thèmes WordPress ?

Diapositives

  • Aucune diapositive n’est prévue pour ce plan de leçon

Matériel nécessaire

  • WordPress installé localement
  • Deux thèmes WordPress installés ou plus

Notes pour le présentateur

  • Il est plus facile pour les étudiants de travailler sur une copie installée localement de WordPress. Prévoyez un peu de temps avant le cours pour aider les étudiants à installer WordPress localement s’ils en ont besoin. Pour plus d’informations sur l’installation de WordPress en local, veuillez consulter Installing on a Local Server.
  • La réponse attendue aux questions de sélection est « oui ». Les participants qui répondent « non » à toutes les questions ne sont peut-être pas prêts pour cette leçon.

Plan de la leçon

  • Présenter le fichier functions.php
  • Montrer la différence entre functions.php et une extension
  • Décrire dans quels cas il est judicieux d’utiliser functions.php
  • Donner des exemples d’éléments qui devraient ou ne devraient pas être ajoutés à un fichier functions.php
  • Montrer la différence entre l’implémentation de functions.php dans les thèmes en blocs et les thèmes classiques

Exercices

Ajoutez des fonctionnalités uniquement à functions.php.

1. Ajoutez une fonctionnalité personnalisée de longueur d’extrait au fichier functions.php de votre thème actif en insérant le code suivant dans le fichier :

function themename_custom_excerpt_length( $length ) { 
    return 40; //number of words in excerpt 
} 
add_filter('excerpt_length','themename_custom_excerpt_length', 99 ); 

2. Créez un article de blog de test avec un long extrait. Vérifiez qu’il fonctionne correctement, puis changez de thème.
3. Remarquez que la fonctionnalité n’existe plus, car elle a été placée dans le fichier functions.php d’un thème spécifique.

Évaluation

Lequel des éléments suivants ne devrait pas se trouver dans function.php ?

  1. Mise en forme de la barre latérale
  2. Favicon
  3. Arrière-plan personnalisé

Réponse : 2. Favicon

Ressources supplémentaires

Exemple de leçon

Introduction : qu’est-ce qu’un fichier functions.php ?

Le fichier functions.php est utilisé pour ajouter, supprimer ou modifier de toute autre manière les comportements par défaut de WordPress. Le fichier se trouve dans le dossier du thème. functions.php se comporte comme une extension WordPress, permettant à son auteur d’ajouter des fonctionnalités personnalisées à un site WordPress. Un thème enfant peut avoir son propre fichier functions.php. Cependant, contrairement à style.css, le fichier functions.php d’un thème enfant ne remplace pas celui du thème parent. Il est chargé en plus du fichier functions.php du thème parent. (lire la suite ici)

En quoi functions.php est-il différent d’une extension ?

Comme functions.php et les extensions permettent tous deux de créer des fonctionnalités personnalisées et de modifier le comportement par défaut de WordPress, il peut être quelque peu déroutant de comprendre quand utiliser functions.php et quand créer ou utiliser une extension pour ajouter des fonctionnalités. En examinant les deux méthodes plus en détail, vous pourrez mieux comprendre dans quels cas chaque solution est appropriée. En général, les extensions sont des modules indépendants qui peuvent être téléchargés et installés sur votre site WordPress. Une extension a pour objectif d’étendre les fonctionnalités de WordPress ou d’ajouter de nouvelles fonctions. Aucune modification du thème actif n’est nécessaire pour activer les extensions. En revanche, les thèmes sont un ensemble de fichiers conçus pour modifier l’apparence de WordPress. Bien que les thèmes puissent inclure des fonctionnalités personnalisées (types de contenu personnalisés, panneau de configuration visuelle, etc.), vous choisissez principalement un thème en fonction de la manière dont il modifiera l’expérience des utilisateurs sur votre site. Les caractéristiques fondamentales qui définissent et distinguent les extensions WordPress du fichier functions.php sont les suivantes :

Une extension WordPress…

  • nécessite un en-tête spécifique et unique.
  • est stockée dans wp-content/plugins, généralement dans un sous-répertoire.
  • ne s’exécute que lorsqu’elle est activée individuellement via le panneau « Extensions ».
  • s’applique à tous les thèmes.
  • devrait avoir un objectif unique, par exemple convertir des articles en pages, proposer des fonctionnalités d’optimisation pour les moteurs de recherche ou aider à effectuer des sauvegardes.

Un fichier functions.php…

  • ne nécessite aucun en-tête unique.
  • est stocké avec chaque thème dans le sous-répertoire du thème, dans wp-content/themes.
  • ne s’exécute que lorsqu’il se trouve dans le répertoire du thème actuellement activé.
  • ne s’applique qu’à ce thème. Si le thème est changé, la fonctionnalité est perdue.
  • peut contenir de nombreux blocs de code utilisés à des fins très diverses.

Quand utiliser functions.php

Nous pourrions en déduire que si la fonctionnalité personnalisée concerne la présentation visuelle, elle devrait se trouver dans functions.php, et que si elle concerne le comportement du site, elle devrait être stockée dans une extension. Cependant, il est techniquement possible de stocker des personnalisations de présentation visuelle dans une extension. Comment déterminer alors la meilleure solution ? La réponse est étonnamment simple. La question que nous devons nous poser est la suivante : cette fonctionnalité doit-elle être liée à un thème spécifique ou non ? Comme functions.php se trouve dans le dossier d’un thème, ce thème doit être actif pour que toute fonctionnalité personnalisée fonctionne. En revanche, si cette fonctionnalité personnalisée était stockée dans une extension, vous pourriez changer de thème tout en la conservant. Ainsi, la meilleure façon de déterminer comment intégrer votre code personnalisé consiste à savoir si la fonctionnalité est spécifique à un thème ou si elle prend en charge le contenu ou la structure du site, quel que soit le thème activé. Par exemple, vous pourriez vouloir définir une longueur d’extrait unique pour les articles d’un thème spécifique en fonction de sa conception et de sa mise en page. La fonctionnalité d’extrait devrait donc être ajoutée à functions.php. Si vous souhaitez implémenter un lien « Lire la suite » pour tous les articles, quel que soit le thème utilisé, cette fonction devrait être ajoutée sous forme d’extension.

Éléments pouvant être placés dans functions.php :

  • mise en forme du contenu
  • fonctionnalités d’en-tête et de pied de page spécifiques au thème
  • crochets WordPress permettant de modifier la sortie, par exemple en utilisant le filtre excerpt_length pour modifier la longueur de l’extrait d’un article
  • code permettant d’activer la prise en charge par le thème des images mises en avant, des formats d’article et des menus de navigation
  • fonctions que vous souhaitez réutiliser dans plusieurs fichiers modèles du thème

Éléments ne devant pas être placés dans functions.php :

  • fonctionnalités liées au référencement
  • scripts Google Analytics
  • types de contenu et taxonomies personnalisés

Implémentation de functions.php dans les thèmes en blocs et les thèmes classiques

Les thèmes WordPress classiques nécessitent que le développeur ajoute la prise en charge des fonctionnalités WordPress au thème. Un fichier functions.php classique contient généralement une fonction permettant de configurer la prise en charge de ces fonctionnalités, en utilisant la fonction add_theme_support() (également appelée « prises en charge du thème »).

Dans un thème en blocs, certaines fonctionnalités prises en charge par le thème sont activées par défaut et n’ont pas besoin d’être activées explicitement. En outre, certaines fonctionnalités sont activées lorsque vous incluez un réglage dans le fichier theme.json d’un thème en blocs. Le réglage défini dans theme.json est prioritaire sur une fonctionnalité ajoutée via add_theme_support(). Par exemple, l’inclusion du réglage settings.layout dans theme.json active la prise en charge du thème align-wide.

💡 Poursuivez avec les exercices et l’évaluation présentés ci-dessus.