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, "(...)") ;?>

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.