Créer un thème enfant sous WordPress

Lorsqu’il est nécessaire de modifier quelques éléments sur un thème il est préférable de créer un thème enfant.

Créer un thème enfant

Il est utile de créer un thème enfant  pour :

  • les thèmes existants qui doivent être mis à jour sur lesquels nous souhaitons faire des  modifications sans les perdre.
  • assurer la préservation des modifications.

Pour créer un thème enfant il faut d’abord créer son répertoire qui sera placé dans wp-content/themes.

Il est recommandé de  nommer le fichier comme son thème parent et d’ajouter à la fin du nom « -child » pour indiquer le thème parent.

Créer ensuite la feuille de style « style.css » dans le dossier du thème enfant. Elle doit contenir les données suivantes :

/*
 Theme Name:   Twenty Fifteen Child
 Theme URI:    http://example.com/twenty-fifteen-child/
 Description:  Twenty Fifteen Child Theme
 Author:       John Doe
 Author URI:   http://example.com
 Template:     twentyfifteen
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  twenty-fifteen-child
*/

 

  • Ne pas mettre d’espace entre l’intitulé de l’information renseignée et les « : » pour cause d’erreur.
  • La ligne « Template » désigne le thème parent.

La feuille de style est le seul élément requis de base dans un thème enfant. Mais functions.php est nécessaire pour mettre en fil d’attente les différentes feuilles de style et autres scripts.

Mettre en file d’attente les différents appels d’un thème enfant

Pour mettre en file d’attentes les différents appels qu’il est nécessaire d’utiliser créer un fichier « functions.php » dans le thème enfant.

<?php
// Active la fonction pour mettre en file d'attente les feuilles de style
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    // Met en file d'attente la feuille de style principale du parent
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    // Enregistre une feuille de style du thème enfant
    wp_register_style('prism-style', get_stylesheet_directory_uri() . '/prism/prism.css');
    // Met en file d'attente la feuille de style du thème enfant
    wp_enqueue_style('prism-style');
}
// Active la fonction pourmettre en file d'attente les scripts
add_action('wp_enqueue_scripts', 'theme_enqueue_script');
function theme_enqueue_script(){
    // Enregistre un script du thème enfant
    wp_register_script('prism-js', get_stylesheet_directory_uri() . '/prism/prism.js');
    // Met en file d'attente un script du thème enfant    
    wp_enqueue_script('prism-js');
}

Source article