Modifier le Read More de WordPress
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 :
//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 :
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 :
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é ?
Voici les thématiques abordées par Modifier le Read More de WordPress:
- Contenu dupliqué -
- Ergonomie -
- Functions.php - Lien More

10 commentaires sur Modifier le Read More de WordPress
Stef - Le 7 mai 2010 à 0 h 39 min
Bonjour !
Merci pour cette astuce, je débute sur wordpress et découvre les hacks :)
Je trouve la fonction assez ergonomique, d’un point de vue visuel : le lecteur repère le début de l’article (souvent une photo) et arrive sur une autre page et retrouve le point de repère qu’il avait inconsciemment (la photo :)).
Je trouve qu’arriver sur un milieu d’article après le « lire la suite », n’est pas une bonne idée… le lecteur/ la lectrice ne lit pas forcément le début de l’article sur la page d’accueil… ou le survole… du coup il faut remonter…
Le redirect par défaut est intéressant lorsque l’article commence par un résumé de l’article, ce qui n’est pas le cas sur mon blog…comme sur la plupart il me semble.
C’était mon humble avis :)
Vivement d’autres hacks !
Daniel Roch - Le 11 août 2010 à 12 h 08 min
Tu es sous quel navigateur Julien ?
Julien - Le 12 août 2010 à 9 h 04 min
Firefox, mais sur mac, c’est peut-etre ça
Elodie - Le 1 septembre 2010 à 14 h 25 min
Impossible de retrouver le « read more » dans mon éditeur. Un beau jour, sans que je touche à quoi que ce soit (juré :-)), mon jump « Lire la suite » s’est mis à débloquer : résultat, un haut de page systématiquement tronqué, et des lecteurs qui râlent. A ce jour, toujours pas de solution. Une âme charitable pour aider la débutante que je suis ?
Daniel Roch - Le 1 septembre 2010 à 19 h 04 min
As-tu fait une mise à jour récemment de ton WordPress ? Et peux-tu faire une capture d’écran pour mieux comprend ton problème ?
Elodie - Le 1 septembre 2010 à 20 h 45 min
Merci Daniel. Non, pas de mise à jour non plus. Voici un exemple typique : http://www.sleekdesign.fr/2010/09/01/kitsune-hansen-se-font-la-malle-chez-barneys-a-ny/#more-4019
Tandis que, si tu cliques dans le titre du post sur la homepage, le lien http://www.sleekdesign.fr/2010/09/01/kitsune-hansen-se-font-la-malle-chez-barneys-a-ny/ restitue texte et images sans souci.
Du coup, je me demandais si je n’essaierais pas de modifier le « read more » pour le rediriger vers l’adresse du post, tout simplement (enfin, « simplement », pas pour moi :-))
Est-ce un peu plus clair ? Même souci avec les blocs commentaires, qui s’affichent tronqués (à peu près correct sur Mac mais catastrophique depuis un PC) : c’est arrivé simultanément, donc probablement lié. Mystère…
Et je prends donc mon premier cours de geekerie appliquée.
Daniel Roch - Le 1 septembre 2010 à 22 h 35 min
Le problème vient de ton thème, et plus particulièrement de ton fichier css. Si on désactive la feuille du style, on peut voir l’intégralité te ton article, même avec la balise more. Il va donc falloir corriger ton thème pour résoudre ce souci d’affichage.
JB50 - Le 12 septembre 2010 à 9 h 46 min
Merci pour ces commentaires, merci de me prévenir des suivants.
ikvat - Le 27 janvier 2011 à 19 h 27 min
Cool, c’est exactement ce que je cherchais.
bruno - Le 13 octobre 2011 à 16 h 42 min
Bonjour ,
Je sais changer ponctuellement le message de la balise c’est à dire que à chaque articles je peux mettre le message que je veux MAIS j’aimerai savoir si dans le code d’une page spéciale il est possible de le définir par défaut de façon a ce que lorsque je met la balise cela prenne par défaut mon message personnalisé ?
merci d’avance