Le fichier functions.php d’un thème WordPress

Dans la précédente leçon de notre cours sur la création de thème WordPress, nous avons vu qu’est ce qu’était un template et pourquoi le fichier index.php était si important.

Maintenant, vous allez découvrir un autre fichier important qui permet de gérer et ajouter des fonctionnalités à notre thème WordPress.

Qu’est ce que le fichier functions.php de WordPress ?

Le fichier functions.php permet d’ajouter ou utiliser des fonctionnalités existantes dans WordPress. Nous allons voir comment enregistrer un menu et comment enregistrer des sidebars.

Création du fichier functions.php

Création d’un menu WordPress

Pour enregistrer un menu avec WordPress, il suffit d’ajouter le code suivant au fichier functions.php.

function register_my_menu(){
   register_nav_menu('main', "Menu principal");
}
add_action('after_setup_theme', 'register_my_menu');

Il y a plusieurs choses à noter dans les lignes précédentes. On créer une fonction dans laquelle on place la fonction register_nav_menu(). Cette fonction prend 2 paramètres, un correspondant à l’identifiant du menu, ici “main” puis la description du menu, ici “Menu principal”.

La 4ème ligne fait appel à la fonction add_action(), cette fonction permet d’attacher une fonction à ce qu’on appelle un “hook” dans le vocabulaire WordPress. Elle prend également 2 paramètres, le 1er correspond au “hook” sur lequel on veut greffer la fonction et le 2ème paramètre correspond au nom de la fonction que l’on veut greffer.

Ici, on greffe la fonction “register_my_menu” sur le hook “after_setup_theme”. Le hook “after_setup_theme” est appelé à chaque chargement de page, après l’initialisation du thème. On l’utilise généralement pour mettre en place les réglages de base du thème.

Maintenant, rendez-vous dans WordPress dans “Apparence > Menus”.

Appuyez sur “Créer le menu”.

Ensuite, cliquez sur “Enregistrer le menu”. On vient d’attribuer le menu à l’emplacement que nous avons enregistré.

Creation de deux sidebars WordPress

Pour enregistrer des sidebars, il faut ajouter le code suivant au fichier functions.php.

function register_my_sidebars(){
   register_sidebar(
       array(
           'name' => "Sidebar principale",
           'id' => 'main-sidebar',
           'description' => "La sidebar principale",
           'before_widget' => '<div id="%1$s" class="widget %2$s">',
           'after_widget'  => '</div>',
           'before_title'  => '<h2 class="widget-title">',
           'after_title'   => '</h2>'
       )
   );
  
   register_sidebar(
       array(
           'name' => "Sidebar du footer",
           'id' => 'footer-sidebar',
           'description' => "La sidebar principale",
           'before_widget' => '<div id="%1$s" class="widget %2$s">',
           'after_widget'  => '</div>',
           'before_title'  => '<h2 class="widget-title">',
           'after_title'   => '</h2>'
       )
   );
}
add_action('widgets_init', 'register_my_sidebars');

Comme pour les menus, on attache la fonction “register_my_sidebars” au hook “widgets_init”. Le hook “widgets_init” se déclenche après l’initialisation de tous les widgets WordPress.

Si on regarde la fonction register_my_sidebars(), on voit qu’on enregistre deux sidebars avec la fonction register_sidebar(). Cette fonction prend en paramètre un tableau de réglages :

  • name : est le nom de la sidebar
  • id : est l’identifiant de la sidebar, il doit comporter que des minuscules et des tirets
  • description : est la description de la sidebar
  • before_widget : est le balisage qui se placera avant chaque widget
  • after_widget : est le balisage qui se placera après chaque widget
  • before_title : est le balisage qui se placera avant chaque titre de widget
  • after_title : est le balisage qui se placera après chaque titre de widget

Vous pouvez maintenant gérer les sidebars dans “Apparence > Widgets”.

Nous avons terminé pour ce qui est du fichier functions.php. Nous allons maintenant voir comment utiliser ces nouvelles fonctionnalités et comment les afficher dans notre thème WordPress.