Les inaperçus dans WordPress

(842 mots)

Tu l’as probablement loupé au milieu des nouveautés shiny mais ce qui suit est pas mal du tout. Petite séance de rattrapage.

Afin de ne pas faire de la redite je me suis assuré que certains éléments du billet sur les utilitaires WordPress n’apparaissent pas une nouvelle fois ici. À lire avant ou après en complément donc.

Nettoyer les champs textarea

On le dira jamais assez mais si tu nettoies pas tes champs, (entrée/sortie), que ce soit avec acf ou non, tu joues avec ta vie ! Figure-toi que depuis la version 4.7 c’est largement moins galère à faire avec les champ textarea (je ne parle pas des « wysiwyg » attention ici ça enlève toutes les balises html).

La fonction est tout simplement sanitize_textarea_field() un peu comme sanitize_text_field() sauf que les sauts de lignes sont préservés ce qui évite de faire un nl2br() ainsi que d’autres traitements dont va s’occuper gentillement cette nouvelle fonction.

@since 4.7 

Source

Nettoyer des valeurs hexadécimales

What ? Je parle en fait des valeurs de couleurs du type #fff600 qu’on utilise dans le css et les styles inline. WordPress possède un utilitaire qui s’occupe de nettoyer ça si vous récupérez la valeur de la couleur dynamiquement depuis un champ par exemple :

sanitize_hex_color() et pour les plus pressés sanitize_hex_color_no_hash()… et là @since 3.4.0 autant dire disponible depuis toujours ^^

La liste des parents

Bon pour avoir les termes parents en général tu fais get_ancestors() non ? Bon bah là t’as une version un peu plus complète, un peu… :

get_term_parents_list()

Source

Donc au lieu de te taper tous les traitements à base de array_reverse(), vérifier si c’est pas une wp_error() et tout le toutim la fonction va te faire gagner du temps et te servira la liste des termes parents sur un joli plateau pour que fasses tes affichages tranquillement. Sympa non tu ne trouves pas ?

Attention @since 4.8.0

Utilitaires pour thèmeurs

get_theme_file_uri() et get_theme_file_path(), ces deux outils pratiques vous permettent de récupérer une ressource depuis le thème enfant AVANT le thème parent. Dans le cadre d’un thème enfant, cela permet d’écraser un fichier plus efficacement.

Je m’explique. Imagine que tu as dans le thème parent un script nommé global.js, avant 4.7 tu devais dequeue ce script puis enqueue le tien. Après 4.7 tu peux donc utiliser get_theme_file_uri() pour écraser directement ce fichier global.js :

wp_enqueue_script('global',get_theme_file_uri( 'js/global.js' ),array(), '1.0');

Sous le capot en fait ça va chercher dans le thème enfant le fichier et si ça trouve rien ça retourne dans le thème parent pour récupérer ce même fichier. Ça inverse littéralement la logique habituelle des thèmes enfant où le code est d’abord recherché dans le thème parent.

Utilisez get_theme_file_path() pour les fichiers php.

C’est un changement apporté pour améliorer le principe d’héritage entre les thèmes enfants et leurs parents. @since 4.7

La hiérarchie des templates filtrable

Avant 4.7 j’imagine que tu utilisais de temps en temps le filtre template_include pour dire à WP « ok je sais que tu attends ce fichier pour cette requête mais moi je veux le remplacer ». Un moyen que tu pensais core-friendly vu que tu passais par un filtre. Eh bien… tu avais complètement raison mais figure-toi qu’un nouveau filtre et donc une pratique beaucoup plus propre a vu le jour :

add_filter( 'category_template_hierarchy', function( array $templates ) {
    $format = get_term_meta( get_queried_object_id(), 'format', true );
    if ( $format ) {
        $new = "category-format-{$format}.php";
        $pos = array_search( 'category.php', $templates );
        array_splice( $templates, $pos, 0, $new );
   }
   return $templates;
} );

Source

Ça a mis du temps (7 ans lol ) mais ça a finalement intégré la version 4.7 de WordPress. Le filtre permet d’accéder à absolument toute la hiérarchie de la requête donc pour le débug c’est vraiment pratique.

Conclusion

J’espère que cette session de rattrapage t’auras plus et te servira. Je m’arrête à 600 mots tchao !

4 réponses à “Les inaperçus dans WordPress”

  1. Sympa ce petit récapitulatif sur les nouveautés wordpress. On a toujours besoin de petits hacks utiles lors de la creation de site web. Merci pour le partage.

Haut de page ▲