Nouvelles fonctions de WP 4.1 dans le thème Twenty Fifteen : la page archive/category

En examinant le fichier archive.php du thème Twenty Fifteen on note des nouvelles fonctions pour afficher le titre et la description de la catégorie concernée. Depuis WP 4.1, 6 nouvelles fonctions utilisables dans la création de thème apparaissent dans wp-includes/general-template.php.
Celle qui nous intéresse ici est

the_archive_description( '
', '
' );

Cette fonction d’affichage appelle get_the_archive_description() qui appelle term_description() via un filtre get_the_archive_description ; ce filtre est intéressant pour traduire le contenu à la volée dans un contexte multilingue…

Surprise ou plutôt comme précédemment, le texte de la description saisie initialement et stocké dans la base est délivré toujours encapsulé de la base html p.
Cette encapsulation est faite par un filtre créé par défaut add_filter( ‘term_description’, ‘wpautop’) dans le fichier wp-includes/default-filters.php. Ce filtre est activé dans sanitize_term_field() du fichier wp-includes/taxonomy.php parce que pour WP, la donnée est destinée à être afichée (display) d’où ces tags 🙁 .
Il faut donc faire un traitement avant d’appliquer la fonction de traduction :

// new in WP 4.1 - will be incorporated in XL 2.17
add_filter ( 'get_the_archive_description', 'xili_get_the_archive_description' );
function  xili_get_the_archive_description ( $description ){
        if (!$description) return '';
	preg_match('/

(.*)/', $description, $match); // ever return description with

with default filter wpautop for display description return '

' . translate( $match[1] , 'twentyfifteen' ) . '

'; }

Noter que l’on utilise ici la fonction gettext ‘translate‘ au lieu de __() parce qu’une variable est traitée pour traduction.