Deux fonctions de traitement de texte WordPress bien pratiques
Quand on travaille sur des thèmes sur mesure pour WordPress ou que l’on développe des plugins spécifiques, on doit souvent gérer l’affichage de fragments de texte en-dehors de la zone de contenu ordinaire des pages et des billets. Dans ces cas, autant réutiliser les fonctions internes de WordPress pour obtenir la présentation désirée. Voici deux fonctions bien pratiques : l’une rend les liens cliquables, l’autre ajoute les balises html de sauts de lignes et de paragraphes.
Make_clickable : pour rendre tous les liens cliquables
Comme son nom anglais l’insique, la fonction make_clickable() transforme tout ce qui est URL commençant par http://, liens vers des téléchargements FTP, et adresses e-mail en liens cliquables. Elle ne prend aucun paramètre (si ce n’est le fragment de texte à traiter), et renvoie le html modifié avec les liens qu’il n’y a plus qu’à afficher avec echo. La documentation Codex de cette fonction est ici (en anglais).
Exemple :<?php echo make_clickable( $texte_a_traiter ); ?>
Wpautop : pour ajouter automatiquement sauts de lignes et paragraphes
WordPress gère le découpage du texte en paragraphes et l’application des sauts de ligne dans le contenu des billets et des pages saisi via l’interface d’administration. L’utilisation de la fonction wpautop() permet d’appliquer le même traitement à tout fragment de texte, où qu’il s’affiche dans le thème. Cette fonction prend deux paramètres : le fragment de texte à traiter, et un paramètre optionnel indiquant s’il faut traiter les sauts de lignes simples avec la balise <br/> (les sauts de ligne doubles sont interprétés comme des séparations de paragraphes avec la balise <p>. Ici aussi, la fonction renvoit tout simplement le code html qu’il n’y a plus qu’à afficher. La documentation Codex de cette fonction est ici (en anglais).
Exemple :
<?php echo wpautop( $texte_a_traiter, true ); ?>
Un exemple de mise en oeuvre concret
La fonction the_author_meta() est utilisée dans les pages auteur des thèmes WordPress pour afficher les informations saisies dans l’interface d’administration des utilisateurs : À propos de l’utilisateur / Renseignements biographiques.
Par défaut, le rendu de cette fonction est cependant très pauvre : impossible de faire un minimum de mise en forme avec des sauts de ligne, ou d’indiquer par exemple des liens vers la page personnelle de l’auteur ou son adresse email.
Dans le gabarit (template) de la page auteur du thème, que l’on trouvera dans le fihier author.php, on peut améliorer significativement les choses en remplaçant le fragment de code PHP suivant :
<?php the_author_meta( 'description' ); ?>
par celui-ci :
<?php echo wpautop( make_clickable( get_the_author_meta( 'description' ) ), true ); ?>
…qui ne fait appel qu’aux deux fonctions internes à WordPress décrites ci-dessus, et provoque un affichage beaucoup plus utilisable des informations de description de l’auteur.
Aller plus loin
Une autre fonction de traitement de texte de WordPress à découvrir : wptexturize() (substitutions typographiques usuelles).
Ne pas réinventer la roue
L’utilisation des fonctions internes de WordPress évite de re-développer en PHP du code déjà disponible dans le framework du CMS : c’est une économie de ressources, de temps et de maintenance sur le long terme. Avant de développer une fonction, une petite recherche dans le Codex (la documentation officielle de WordPress) et sur le web est un bon réflexe pour ne pas risquer d’introduire de la redondance inutile dans le code des plugins ou fonctions de thème développés sur mesure pour un projet sous WordPress. Une bonne pratique à encourager.
le 14 February 2012 à 16:22 h
Confronté à un problème de mise en forme du texte de présentation des auteurs d’un blog multiparticipants (présentation du texte saisie en biographie) j’ai utilisé avantageusement votre petite ligne de code (wpautop) et vous remercie pour cette aide. cf : http://depasserlesbornes.fr/dplb/?author=6 ou les sauts de ligne sont pris en compte.
Cependant mes compétence en php ne me permette pas de résoudre le problème pour la page complète de présentation de ces auteurs. cf : http://depasserlesbornes.fr/dplb/?page_id=56
aucun saut de ligne ni mise en forme n’est pris en compte…
Auriez vous quelques explications complémentaires à ce sujet ?
Merci.