[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.

Si vous ne le saviez pas déjà, les utilisateurs de WordPress peuvent renseigner une courte description dans leur profil. Cette fonctionnalité peut s’avérer très utile si votre site compte parmi ses utilisateurs plusieurs auteurs. Chacun ayant une page dédiée et/ou un petit encart affiché en bas de leurs articles, afficher une petite description sous forme de mini biographie est toujours sympa et rend votre site plus Humain. Toutes les infos sur les champs disponibles sont comme d’hab’ dans le CODEX : the_author_meta

Le problème du champ description est qu’il s’agit d’un simple textarea, sans outil de mise en forme et que les éléments HTML de type paragraphe <p></p> et linebreak <br> sont automatiquement supprimés à l’enregistrement. Notez que vous pouvez toujours utiliser les balises anchor  <a></a>.

Bref, j’en viens au fait, si vous faites des retours chariot dans le textarea, et que vous affichez la description en front grâce à the_author_meta, vous ne les verrez pas ! Le texte se suivra sans retour à la ligne (un peu comme sur Tinder…mouhahahah).

Les retours chariot sont pourtant bien visibles dans le textarea car il sont bien enregistrés, mais ils ont été convertis en \n pour être stockés en base de données.

Vous vous dites donc :

« Hmmm , faut faire comme ça et puis c’est bon…non ? »

echo nl2br( get_the_author_meta('description') );

 

Et on pourrait vous répondre :

« Oui, mais tu vas pas t’éclater a éditer plusieurs fichiers de ton child-theme, et puis si tu changes de thème faudra le refaire partout aussi… »

Nous allons donc tout simplement hooker la fonction d’affichage du champ description en amont pour avoir des <br> à tous les coups :

function bweb_author_bio_nl2br( $value ){
	return nl2br( $value );
}
add_filter( 'get_the_author_description', 'bweb_author_bio_nl2br' );

Si vous avez des traitements particuliers à appliquer, sachez que la variable $user_id est également disponible dans ce hook.

Voici un exemple primaire d’utilisation :

function bweb_author_bio_nl2br( $value, $user_id ){
	if ($user_id == 1)
	return 'Bio : ' . nl2br( $value );

	return $value;
}
add_filter( 'get_the_author_description', 'bweb_author_bio_nl2br', 9, 2 ); 

 

Grâce à la variable $user_id, vous pouvez récupérer bon nombre d’informations relatives aux utilisateurs et donc faire des tests conditionnels selon vos besoins. On en revient à get_the_author_meta.

Voilà, les hooks c’est quand même bien sympa.

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *