Raccourcir la description de vos catégories

Comment raccourcir la description de vos catégories

Afficher la description de ses catégories selon les pages

Dans un site wordpress, on peut facilement afficher la description d’une catégorie dans la page catégorie :

<?php echo category_description(); ?>

Ou encore, dans une page d’archives :

<?php 
the_archive_description( '<div class="taxonomy-description">', '</div>' );
?>

Ou encore dans un article :

$catID = get_the_category();
echo category_description( $catID[0] );

La description pouvant être longue et impacter votre mise en page, voici une solution pour la raccourcir, sur une page de catégorie ou de sous-catégorie.

Raccourcir la description des catégories

Voici deux fonctions trouvées sur stackoverflow pour raccourcir la description des catégories, en appliquant un filtre ou une fonction directement à la fonction wordpress category_description() :

$cat_ID = 2;
echo wp_trim_words( category_description( $cat_ID ), 55, '<a href="' . get_category_link( $cat_ID ) . '">' . __("Read more", "text-domain" ) . '</a>' );

ou

add_filter( 'category_description', 'cc_shorten_category_desc', 10, 2 );
function cc_shorten_category_desc( $desc, $cat_id ) {
$desc = wp_trim_words( $desc, 55, '<a href="' . get_category_link( $cat_id ) . '">' . __("Lire la suite", "votre-text-domain" ) . '</a>' );

return $desc;
}

Raccourcir la description des sous catégories.

Dans une page d’archive ou de catégorie, on peut créer une boucle pour afficher les sous catégories :

<?php

$cat = get_query_var('cat');
$args = array(
'child_of' => $cat,
'orderby' => 'name',
'order' => 'ASC'
);
$categories = get_categories($args);
foreach($categories as $category) {

?>

Dans ce cas, on récupère le nom de la sous catégorie ou sa description  avec :

<?php echo  $category->name ;?>

<?php echo $category->description ;?>

Dans un tel scénario, on peut utiliser la fonction  mb_strimwidth() pour raccourcir le nombre de caractère, comme ci-dessous.

<?php echo  mb_strimwidth($category->description, 0, 540, "(...)") ;?>