Les thèmes enfants
Au-delà de la bonne pratique
Pré-requis
Parce que sinon c’est trop facile
Cet atelier suppose que vous savez :
- ce qu’est un thème enfant ;
- comment créer un thème parent et enfant ;
- discerner les territoires des thèmes des extensions.
L’héritage ascendant
Faites travailler vos enfants !
La principale caractéristique des thèmes enfants est… leur thème parent ! Il est votre patrimoine technique, mais c’est pourtant lui qui hérite de ses enfants !
Ah bon ? Moi je dis qu’il bluffe !
Contre-pillez ☠
En mode pirate
Cette fonction sur le projet Machin est demandée par tous nos projets récents : on peut donc l’ajouter au thème parent. Comment feriez-vous ça, vous ? Lachez-vous, on a bien dix minutes pour discuter !
Méthodologie
Éliminez les déchets ☣
- Homogénéisez et règlementez l’écriture du code ;
- Organisez vos fichiers en chapitres ;
- Commentez, documentez, citez et créditez ;
- Autorisez l’émancipation des enfants.
Dans ffeeeedd
/* == @section Gestion des commentaires ==================== */
/**
* @author Luc Poupard
* @see https://twitter.com/klohFR
* @note Personnalise l’affichage des commentaires, ajout des microdonnées,
* @note et amélioration de l’accessibilité du formulaire avec les attributs et rôles ARIA.
*/
/* -- @subsection Ajout de l’attribut HTML5 required sur le textarea -------------------- */
add_filter( 'comment_form_defaults', 'ffeeeedd__textarea__html5' );
if ( ! function_exists( 'ffeeeedd__textarea__html5' ) ) {
function ffeeeedd__textarea__html5( $defaults ) {
$defaults['comment_field'] = '
<p class="comment-form-comment">
<label for="comment">' . __( 'Comment', 'ffeeeedd' ) . '
<span class="required">*</span>
</label>
<textarea id="comment" name="comment" cols="45" aria-required="true" required="required"></textarea>
</p>';
return $defaults;
}
}
On a un camp de base,
Allons à l’aventure !
Grâce à votre thème parent, vos projets ne seront plus des champs de bataille mais des terra incognita qu’il vous faudra découvrir ✈. Allez, et voguez sur vos thèmes enfants.
Devenez explorateur
Sortez de votre PHP !
Votre thème parent vous permet de moins vous répéter. Chaque thème enfant est désormais une occasion d’explorer et acquérir de nouvelles connaissances. Chouette, non ?
Montez en compétence
On aborde l’accessibilité ?
Imaginez une fonction de fil d’Ariane incluse dans votre thème parent. Dans le cadre d’un projet, vous profitez de votre thème enfant pour en améliorer l’accessibilité.
Super ! Mais comment fait-on ?
Une idée ?
Worklow optimal
Vers l’infini et l’au-delà
- Dupliquez ladite fonction dans votre thème enfant ;
- Recherchez les améliorations possibles ;
- Déterminez celles à appliquer, et comment le faire ;
- Testez et vérifiez le résultat ;
- Si vous êtes satisfait, envisagez de ré-intégrer vos améliorations à votre thème parent.
Documentation : ✔
Après de longues recherches
/* == @section Fil d’Ariane ==================== */
/**
* @author Daniel Roch
* @see https://twitter.com/rochdaniel
* @see http://www.seomix.fr/fil-dariane-chemin-navigation/
* @note Modifications pour améliorer l’accessibilité
** @author Gaël Poupard
** @see https://mamot.fr/@ffoodd
** @see https://gist.github.com/jonathantneal/4037764
** @see http://www.w3.org/WAI/tutorials/menus/multiple-ways/#breadcrumbs
*/
« Merci !» — Signé : un successeur qui vous veut du bien.
Et ça donne quoi ?
Le code généré
<nav role="navigation" aria-label="Vous êtes ici :">
<a href="http://2014.wptech.fr">WordPressTech 2014</a>
<span aria-hidden="true"> → </span>
<strong>Les thèmes enfants : au-delà de la bonne pratique</strong>
</nav>
Et voilà : on suit désormais la recommandation du WAI et on a une ressource nous indiquant ce qui est vocalisé par certains lecteurs d’écran. Trop cool !
On a déjà vu comment intégrer ça au thème parent ❤.
Un recyclage productif
« Cultivez votre jardin »
Grâce à votre thème, vous pourrez travailler en autarcie :
- Moins de dépendances ;
- Meilleure documentation ;
- Maintenance facilitée ;
- Vos travaux ne sont plus cloisonnés à un projet.
Je n’ai pas fini !
On sort l’artillerie lourde ☢
- Quid des extensions ?
- Et des extensions obligatoires (MU plugins) ?
- Et — soyons fous — des composants HTML ?
Faites-en autant : contre-pillez, explorez, recyclez, et améliorez encore et encore votre travail.
Les interventions
Avec plein de bonnes choses dedans
- Composer a été évoqué pour gérer les dépendances ;
- Tony Archambeau a mentionné plusieurs pratiques :
- Définir des constantes propres au projet ;
- La scission de
functions.php
en deux : une pour l’admin, une pour le front (cf. dans ffeeeedd) ; - La capacité à tester l’existence de classes et méthodes en complément du test sur les fonctions.
- L’utilisation d’outils « de workflow » tels que Grunt.
Merci
Et à bientôt ☺
Crédits
- Moteur de présentation : AccesSlide — par Access42 ;
- Pictogrammes : Rounded UI — par Marek Polakovic ;
- Typographie de titraille : Bello Pro — créée par Underware ;
- Typographie de labeur : Museo Slab — créée par Exljbris.