Limiter le nombre de caractère dans le titre d’un l’article

Cette fonction va vous permettre de limité le nombre de caractère dans les titres de vos articles, par exemple : pour mieux présenter une page d’accueil qui contient plusieurs blocs d’articles différent.

Ajouter le code ci-dessous dans votre fichier function.php de votre thème :


 

<?php// Limiter le nombre de caractère dans le titre d'un l'article

function shortened_title() {

$original_title = get_the_title();

$title = html_entity_decode($original_title, ENT_QUOTES, "UTF-8");

// indiquer le nombre de caratère

$limit = "55";

// fin du titre couper

$ending="...";

if(strlen($title) >= ($limit+3)) {

$title = substr($title, 0, $limit) . $ending; }

echo $title;

}

?>

Puis remplacer the_title(); par :

<?php shortened_title(); ?>

Deuxième méthode : limité le nombre de mots dans le titre

Dans cette deuxième méthode  je vais me servir de la fonction get_the_title de WordPress et de la fonction count en  php pour comptabiliser le nombre de mots.

Ajouter le code suivant dans le fichier function.php de votre thème WordPress :

function new_title($after = '', $length) {

   $shtitle = explode(' ', get_the_title(), $length);

   if (count($shtitle)>=$length) {

       array_pop($shtitle);

       $shtitle = implode(" ",$shtitle). $after;

   } else {

       $shtitle = implode(" ",$shtitle);

   }

       return $shtitle;

}

Puis remplacer the_title par cette ligne ci-dessous en indiquant le nombre de mots que vous voulez dans les titres de vos articles les (…) compte pour 1 mot.

<?php echo new_title('...', 5); ?>
0 0 votes
Évaluation de l'article
S’abonner
Notifier de
guest
8 Commentaires
le plus ancien
le plus récent le plus populaire
Inline Feedbacks
View all comments
Bobby
Bobby
9 années il y a

Je croyais que c’était un tuto déjà existant mais en fait tu viens de le faire!
Un grand merci Fred! 😀

Nico Web
9 années il y a

Merci pour ce tuto!
Je me demandais juste comment limiter le nombre de caractère dans le titre d’un l’article sans couper les mots?
Si quelqu’un a une idée ….
Cela me dépannerais bien 😉

j’avais penser à utiliser quelque chose avec cette fonction :


if (str_word_count($title) &gt;= 10 )

Mais comment l’utilisé?

Fred
Fred
Reply to  Nico Web
9 années il y a

Bonjour Nico,
Pour répondre a votre question j’ai mis à jour l’article et j’ai utiliser la fonction count et get_the_title , j’espère avoir pu vous dépanné la dessus ;).

Bruno
Bruno
9 années il y a

Super tuto, qui simplifie la vie 😉 juste un petit soucis, les accents apparaissent en caractères spéciaux : d�… ????

Adrien
9 années il y a

Bonjour à tous,

Cela vous parait surement évident, mais une fois le code copié dans le fichier “fonctions.php”, il faut remplacer la variable the_title() par la ligne donnée.

J’ai trouvé la variable the_title()dans mon fichier de thème 2columnssidebar.php, mais ça n’a aucun effet.

Après j’utilise une fonction de mon thème disposant deux articles par ligne, c’est pour cela que mes titres sont coupés et j’aurais souhaité avoir la main sur leur longueur.

Bref si vous pouvez m’aider c’est magnifique !

steflp
6 années il y a

MErci utile surtout ici ou les titres sont vraiment long !!!

http://silorientmetaitconte.net/