Vous êtes ici : Accueil | Snippets WordPress | Articles | Comment limiter la longueur des titres de WordPress

Comment limiter la longueur des titres de WordPress

article snippet

Si vous êtes plusieurs auteurs sur un même blog à écrire des articles, vous pourriez avoir envie d’unifier un peu toutes les publications. Par exemple, en évitant que l’on saisisse des titres à rallonge.

Je vous propose ici d’ajouter un snippet qui vous permettra de définir un nombre de caractères maximum pour les titres de vos articles.

On est d’accord, certains titres affichés sur une ligne et d’autres sur trois ne donnent pas un rendu optimal pour vos visiteurs.

Nous allons voir ici comment obliger les titres à ne pas dépasser 50 caractères.

Pour cela, copiez-collez le code suivant dans le fichier functions.php de votre thème enfant:

add_action( 'admin_footer', 'wpm_limit_title_chars' ); 

function wpm_limit_title_chars() { ?>
    
    <!-- On défini un nombre de caractère maximum pour les titres des articles: ici 50 -->
    <script>jQuery( 'input#title' ).attr( 'maxlength', 50 );</script>
    
<?php } 

Et c’est tout ! N’hésitez pas à modifier la valeur 50 pour la diminuer ou l’augmenter suivant vos besoins.

Essayez maintenant de vous rendre dans l’administration de WordPress pour publier un article. Vous allez voir que vous ne pourrez pas écrire plus de 50 caractères dans le champ « Saisissez votre titre ici ».

50 caracteres max titre snippet WordPress

Par contre, si vous avez besoin de publier une page avec un titre plus grand que 50 caractères, cela va coincer.

Eh oui, car le snippet s’applique à tous les types de contenus disponibles. Les articles, les pages et tous les CPT de votre site seront concernés.

Limiter le nombre de caractères des titres d’un seul type de contenu

Si vous désirez que la limitation de la longueur des titres ne concerne qu’un type de contenu en particulier, il va falloir améliorer notre snippet de cette façon :

// Limiter le titre des articles à 50 caractères
add_action( 'admin_footer', 'wpm_limit_title_chars_post' );

function wpm_limit_title_chars_post() {
	
	// On récupère le type de contenu sur lequel on se trouve dans l'administration
	$post_type = get_current_screen()->post_type;
	
	// Si c'est un article on applique la limitation
    if ( $post_type == 'post') { ?>

	    <!-- On défini un nombre de caractère maximum pour les titres des articles: ici 50 -->
	    <script>jQuery( 'input#title' ).attr( 'maxlength', 50 );</script>

<?php }

}

Bien sûr, vous pouvez remplacer post au niveau de la ligne 10 par page si vous souhaitez limiter le titre des pages ou par le type de contenu de votre choix. Si par exemple je souhaitais limiter les titres des snippets sur la Marmite, je devrais indiquer snippet.

Comment signaler que la limite est atteinte

Tel quel, ce snippet fait très bien le boulot. Toutefois, on reste dans le flou car on ne sait pas pourquoi on ne peut plus continuer à écrire…

Pour montrer à ses utilisateurs qu’il n’est pas possible d’aller plus loin, je vous propose de changer la couleur du champ titre avec le snippet suivant :

// Limitation du nombre de caractère des titres des articles avec personnalisation
add_action( 'admin_footer', 'wpm_limit_title_chars_post_custom' );

function wpm_limit_title_chars_post_custom() {

	// On récupère le type de contenu sur lequel on se trouve dans l'administration
	$post_type = get_current_screen()->post_type;

	// Si c'est un article on applique la limitation
    if ( $post_type == 'post') { ?>

	    <!-- On défini un nombre de caractère maximum pour les titres des articles: ici 50 -->
	    <script>
		    var title_max = 50;
		    
		    // On limite le nombre de caractères
		    jQuery( 'input#title' ).attr( 'maxlength', title_max );
			
			// A chaque fois qu'on tape un caractère on vérifie la longueur
		    jQuery( 'input#title' ).keyup(function () {	  
				var len = $(this).val().length;
				// Selon le nombre de caractères on transforme le champ titre
				if (len >= title_max) {
			    	jQuery('input#title').css("background-color" ,"#f2dede");
					jQuery('input#title').css("color", "#a94442");
				} else {
			    	jQuery('input#title').css("background-color" ,"#fff");
					jQuery('input#title').css("color", "#32373c");
				}
			});

	    </script>

<?php }

}

Avec les codes couleurs renseignés, on obtient ce rendu si la limite de 50 caractères est atteinte (modifiable ligne 14) :

Personnalisation du champ titre si la longueur maximale est atteinte

À partir de ce bout de code, on peut tout imaginer. Si vous êtes un gros perfectionniste, vous pourriez afficher une couleur en fonction du nombre de caractères saisis pour avoir du vert, orange et rouge par exemple. On peut aussi afficher le nombre de caractères restants sous le champ de saisi du titre.

Qu’avez-vous pensé de ce snippet ? Comptez-vous aller jusqu’à la phase de personnalisation ?

Source: Greg Sweet

Vous débutez ? Procurez-vous le Kit du Freelance WordPress

Trouver les bons clients, leur vendre des prestations et bien communiquer avec eux n'est pas inné. Évitez les galères et gagnez du temps en vous formant aux côtés de ces 7 professionnels.

Commencer maintenant

    Laisser un commentaire

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

    La Marmite ne peut malheureusement pas fournir de support. Merci d'en tenir compte dans votre commentaire 😉

    Si vous ne lui en voulez pas, donnez-lui un j'aime sur Facebook :



    30ef79fb52c1ad0b951011bb90ff9a31GGGGGGGGGGGGGGGGG
    25 Partages
    Partagez14
    Tweetez5
    Partagez6