Ces deux bouts de code dégottés sur wpguy affichent un lien « lire la suite » aléatoire pour chacun de vos articles. Le premier bout de code est constitué d’un Array regroupant vos chaines de caractères ; il doit se trouver avant The Loop.
Voici donc 4 messages que vous personnaliserez selon votre bon plaisir :
<?php
$more_strings = array(
"Ne cliquez pas...",
"Il n'est de bonne compagnie qui ne se clique",
"Quand y en a plus, y en a encore...",
"Voulez-vous en savoir plus ?..");
?>
Reste à remplacer l’appel à la fonction the_content() que vous utilisez habituellement pour afficher vos billets par cette ligne :
<?php the_content($more_strings[rand(0,count($more_strings))]); ?>
MàJ du 13/06/09 : Suite à la vigilance de Damien et aux explications détaillées de piouPiouM ainsi qu’à la cerise sur le gâteau apportée par Oncle Tom, voici les corrections apportées à l’appel à la fonction (voir les commentaires pour plus de détails) :
<?php $more_strings[mt_rand(0,(count($more_strings)-1))]); ?>
And the cat’s in the bag!

…où comment perturber un max ses utilisateurs, en leur affichant des messages différents dans leur forme sans valeur ajoutée, pour une action identique. Quel en est l’intérêt, pour toi ?
Bonjour,
Ce que j’aimerais plutôt savoir, c’est comment modifier le more pour afficher un « Lire la suite de l’article [nom de l'article]« .
Enfin, si c’est bon pour le référencement ;-)
Rick Hunter : Pour le référencement, je ne sais pas, mais ce qui est sur, c’est que c’est bon pour l’accessibilité et pour l’ergonomie.
Attention il y a une erreur dans ce code… $more_strings[rand(0,(count($more_strings)-1))]);
L’index d’un tableau commence à 0 et le count te donne donc un chiffre hors offset.
Je trouve le concept pas mal du tout ! Merci pour l’astuce !
Juste pour info, il faut prendre l’habitude d’utiliser
mt_rand()au lieu derand()pour que ça soit vraiment bien aléatoire :-)Tu peux aussi personnaliser le texte « Lire la suite » directement depuis l’édition de ton article. Au lieu de la balise more habituelle () il suffit d’ajouter le texte que tu souhaite afficher.
Excellent!! Mais il n’y a pas quelques plugins qui le font déjà ? J’en ai un qui donne une citation aléatoire en bas de chaque article ;)
Effectivement. Je me permets de détailler pour les non-développeurs.
Pour rappel, les variables PHP de type
Arrayvoient leurs index débuter à 0. La fonctioncount()retourne le nombre d’éléments contenus dans un tableau.Considérons
$more_strings, une variable de typeArrayde 5 éléments. Alors que la fonctioncount()compte bien 5 éléments, le tableau aura les index qui suivent : 0, 1, 2, 3 et 4.Ici, la fonction
rand()aura pour bornes 0 et 5. Si l’entier 5 est tiré au sort par la fonctionrand(), PHP générera une erreur de typeNoticecar 5 n’est pas un index valide : les index du tableau sont compris entre 0 et 4 ;-)C’est pourquoi Damien propose de soustraire 1 à la borne maximale récupérée via la fonction
rand()(4 = 5 – 1).Bien vu, j’attendais de rencontrer pioupiouM pour avoir un avis autorisé sur cette épineuse question. C’est réparé, merci :)
Ca dépend du contexte et du sens de l’humour des visiteurs ;) Mais, oui, dans de nombreux cas, cela peut perturber les utilisateurs. Ceci étant, je n’ai pas vocation à remettre mes lecteurs dans le droit chemin ^^
ça devrait marcher avec < ?php the_content('More is less...'); ?>, par exemple :D
J’ai rajouté le mt_rand() dans l’appel. Décidément, ces américains ne sont pas très rigoureux ^^