Modifier le Read More de Wordpress (Hacks et fonctions)

Publié le 11 avril 2010 par Seomix @rochdaniel

Dans les blogs WordPress, on peut décider de couper un article en deux dans les pages de catégories, d'archive ou encore sur la page d'accueil. L'intérêt, c'est de limiter le contenu dupliqué dans les pages de listing, tout en ajoutant du contenu spécifique dans les pages d'articles.

Un exemple de lien More sur WordPress

Par défaut, ce lien pointe directement vers l'ancre #more, c'est à dire là où vous avez séparé en deux votre article. Voici comment modifier proprement ce comportement inhérent à WordPress.

Pourquoi un lien more sur WordPress ?

Avant de personnaliser le lien "Lire la suite", petite explication de l'intérêt du lien more en termes de référencement. Il vous évite le duplicate content. Lorsque l'on publie un article sur WordPress, il va apparaître sur :

  • la page d'accueil
  • la page de catégorie (ou les pages si plusieurs catégories sélectionnées)
  • la page de tag (ou les pages si plusieurs tags sont associés)
  • la page auteur si vous en avez une
  • les pages de taxonomies si vous en avez créé

Bref, beaucoup de contenu dupliqué pour un seul article. Pour réduire ce phénomène, il suffit de place une balise <more> dans votre article pour le scinder en deux. Seule la première partie sera alors dupliquée.

Personnaliser le lien lire la suite sous WordPress

Pour modifier le lien généré par le more de WordPress, nous allons faire appel à votre fichier functions.php présent dans le répertoire de votre thème. Si vous n'en avez pas, créez-le avec le gabarit suivant :

Code block   

<?php
//Contenu de votre fichier
?>

Maintenant, on va pouvoir définir où l'internaute sera redirigé en cliquant sur le fameux lien "Lire la suite" (More). Vous avez trois possibilités :

  • Laisser le lien More, c'est à dire qu'il redirige le visiteur là où l'article a été coupé
  • Le rediriger vers le haut de la page
  • Le rediriger vers une autre balise créer par vos soins

Rediriger le lien more vers le haut de page

Voici le code pour rediriger le lien "Lire la suite" vers le haut de votre page WordPress :

Code block   

// Saut vers le haut de l'article avec le more link
function remove_more_jump_link($link) {
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);}
return $link;}
add_filter('the_content_more_link', 'remove_more_jump_link');

Rediriger le lien more vers une balise de votre choix :

Si vous souhaitez rediriger le lien more vers une autre ancre, utilisez ce code et remplacer le #mymore par le nom de votre balise :

Code block   

// Saut vers le haut de l'article avec le more link
function remove_more_jump_link($link) {
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);}
if ($end) {
$link = substr_replace($link, '#mymore', $offset, $end-$offset);}return $link;}
add_filter('the_content_more_link', 'remove_more_jump_link');

Et voilà, le tour est joué.

Cette fonctionnalité ne fonctionnera pas avec WordPress v2.7.1 et les versions antérieures. Si vous êtes dans ce cas, mettez à jour votre WordPress au plus vite (pour des raisons de sécurité et d'utilisation).

D'ailleurs, j'aimerais bien avoir votre avis sur cette fonction. Trouvez-vous cela plus ergonomique d'être redirigé vers le haut d'un article, ou vers l'endroit où il a été coupé ?