Vous avez peut-être remarqué comment certains sites Web populaires (comme eHow, etc.) ajoutent un lien « lire la suite » à tout texte copié de leur site. C'est un excellent moyen d'attirer de nouveaux utilisateurs. Souvent, les gens copient et collent du texte de sites Web dans des e-mails. Certains l'utilisent pour sauvegarder des informations pour plus tard, tandis que d'autres les partagent simplement avec leurs amis, leur famille et leurs collègues. Dans cet article, nous allons vous montrer comment ajouter facilement un lien « lire la suite » à tout texte copié de votre blog WordPress, afin que vous puissiez obtenir du trafic supplémentaire.
Remarque : Pour voir cela en action, copiez n'importe quoi sur cet article et collez-le dans votre e-mail ou votre bloc-notes.
La première chose à faire est de copier le code suivant dans le fichier functions.php de votre thème ou dans un plugin spécifique au site :
function add_copyright_text() {
if (is_single()) { ?>
<script type='text/javascript'>
function addLink() {
if (
window.getSelection().containsNode(
document.getElementsByClassName('entry-content')[0], true)) {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var oldselection = selection
var pagelink = "<br /><br /> Read more at WPBeginner: <?php the_title(); ?> <a href='<?php echo wp_get_shortlink(get_the_ID()); ?>'><?php echo wp_get_shortlink(get_the_ID()); ?></a>"; //Change this if you like
var copy_text = selection + pagelink;
var new_div = document.createElement('div');
new_div.style.left='-99999px';
new_div.style.position='absolute';
body_element.appendChild(new_div );
new_div.innerHTML = copy_text ;
selection.selectAllChildren(new_div );
window.setTimeout(function() {
body_element.removeChild(new_div );
},0);
}
}
document.oncopy = addLink;
</script>
<?php
}
}
add_action( 'wp_head', 'add_copyright_text');
Désormais, chaque fois que quelqu'un visite votre site Web et essaie de copier votre contenu, un lien « lire la suite » sera inclus avec celui-ci. N'oubliez pas de modifier le texte du copyright et d'y ajouter le titre de votre propre site.
Modification : Initialement, nous récupérions l'URL de la fenêtre, mais comme l'un de nos utilisateurs l'a souligné, cela rendait les URL peu élégantes. Nous avons mis à jour le code pour qu'il ne s'affiche que sur les pages d'articles uniques et utilise wp_shortlink. Il utiliserait donc quelque chose comme ceci : votresite.com/?p=23. Si vous utilisez un lien court personnalisé comme nous : wpbeg.in, il affichera alors le lien court de marque.

Bee
Bonjour,
ce code ne semble pas fonctionner, ni sur votre site web ici, ni sur mon site web en utilisant votre extrait (WP 6.2). Pourriez-vous s'il vous plaît vérifier cela ? Merci.
Support WPBeginner
Le code fonctionne toujours pour nous, nous vous recommandons d'essayer de désactiver tous les plugins et/ou d'utiliser un navigateur incognito pour empêcher les extensions de voir si l'une d'elles pourrait causer un conflit.
Admin
Edward Elric
Est-ce que cela fonctionne toujours en 2020 avec la dernière version de Wordpress ?
Support WPBeginner
Sauf indication contraire, le code devrait toujours fonctionner lorsqu'il est ajouté à votre site.
Admin
Junuk
Bonjour, Merci pour vos bonnes informations !
J'ai appliqué le code que vous m'avez indiqué avec le plugin BItly sur mon site, mais il fonctionne parfois et parfois non.
Ce code a-t-il un rapport avec le plugin Cache ? Pouvez-vous me dire où sur mon site je devrais regarder ?
Support WPBeginner
Si vous avez un plugin de mise en cache activé, vous devrez probablement vider tout le cache de votre site pour qu'il se mette à jour correctement. Pour vider votre cache, vous pourriez consulter notre guide ici : https://www.wpbeginner.com/beginners-guide/how-to-clear-your-cache-in-wordpress/
Admin
Pierre
Bonjour,
Merci, cela fonctionne bien sur les articles de 2019, mais est-il possible de le faire fonctionner sur un type de publication personnalisé ?
J'ai Eventon et WP News and Scrolling Widgets.
Support WPBeginner
Vous devrez modifier is_single en is_singular et ajouter le nom de votre type de publication personnalisé
Admin
Will
Avez-vous des conseils sur la façon d'ajouter des paramètres de suivi Google à la fin de chaque URL ? Sachant que vous utilisez déjà ?p= pour le nom de l'article à la fin.
Akash
Y a-t-il un moyen simple de le faire fonctionner aussi sur les catégories ?
Jasmine
Merci pour cela, cela fonctionne très bien pour les articles, mais lorsque le texte est copié à partir d'événements, il ne récupère pas l'URL de la page – des conseils ? Merci.
Michele
C'est génial. Merci. Quand il est dit class – entry content, cela signifiait que cela ne fonctionnait pas pour environ 90% du texte de mon site car mon texte n'utilisait pas ce nom de classe. Donc, si quelqu'un d'autre rencontre ce problème, vous pouvez changer « entry content » en « body ». C'est ce que j'ai fait.
var body_element = document.getElementsByTagName(‘body’)[0]; (ligne 13)
Maintenant, ça marche partout.
Meenu
Comment puis-je limiter le contenu ?
Dave
Merci beaucoup, toute la mise en forme du texte a été modifiée et collée en une seule ligne. Mais j'ai besoin de la mise en forme du texte telle quelle. Alors s'il vous plaît, aidez-moi à obtenir cela.
Ark
Idem, tous les sauts de ligne manquent après le collage.
Jens | Sir Apfelot
Damn… I am stupid… I added it to the themes custom JS… thats not working.
Jens | Sir Apfelot
Je viens d'ajouter le script dans mon blog WordPress, mais je n'obtiens pas d'appendice à la fin du presse-papiers...
Any ideas? I am not sure, if its because I am working on a mac… but I guess the javascript should work on Firefox on a mac too…
Yash Jhade
En le collant sur Blogger, l'erreur suivante apparaît
Erreur lors de l'analyse XML, ligne 2237, colonne 96 : La valeur de l'attribut « href » associé à un type d'élément « a » ne doit pas contenir le caractère « < ».
Des solutions ?
Merci.
matt
cette fonctionnalité rend la copie et le collage plus frustrants. Par exemple, si je copie et colle un titre pour éditer Wikipédia, cela peut gâcher la mise en forme si je ne fais pas attention et nécessite un travail supplémentaire.
Anonyme
En tant qu'utilisateur, je ne supporte pas ça. S'il vous plaît, n'ajoutez pas cela.
Alan
Quelqu'un sait comment conserver le format ?
Lorsque vous utilisez ce plugin, tous les espaces, sauts de ligne et formats disparaissent.
Philip-Daniel Kleudgen
Ça marche à merveille ! La seule chose que j'aimerais, c'est qu'il limite la quantité de texte copié à, par exemple, 150 mots ou quelque chose comme ça.
Salud Casera
Ne fonctionne plus pour moi.
Ça fonctionnait avant, mais je pense que cela a plus à voir avec le thème qu'avec la version de WP
Alyson
Malheureusement, le code ne fonctionne pas avec WP 3.8
Je l'ai testé sur une nouvelle installation. N'hésitez pas à le confirmer. Avez-vous l'intention de mettre à jour le code pour qu'il fonctionne ?
Support WPBeginner
Nous venons de le tester avec une nouvelle installation de WP 3.8 et cela fonctionne parfaitement de notre côté.
Admin
Erik
Je n'arrive pas à faire fonctionner ça non plus en fait.
Roselle
Bonjour,
Au début, je n'arrivais pas à faire fonctionner ça. Mais après un examen attentif, j'ai trouvé le coupable :
À la 8ème ligne du code, vous verrez ceci :
document.getElementsByClassName(‘entry-content’)[0], true))
C'est cette ligne qui dit au code : « hé, si quelqu'un copie du texte à partir d'un texte avec ce nom de classe, alors ajoutez un lien Lire la suite »
Il vous suffit d'utiliser Firebug pour trouver le nom de classe sous lequel se trouve le contenu de votre article.
J'ai un thème enfant que j'ai modifié maintes et maintes fois, donc le mien n'était pas le nom de classe par défaut, « entry-content ». Je soupçonne que votre nom de classe est différent aussi.
Bonne chance,
Roselle
Salud Casera
Quelles sont les étapes à suivre avec Firebug pour trouver le nom de classe de l'article ?
Gabriel
Bonjour,
Merci beaucoup pour cet excellent article, mais j'ai un problème. Je voudrais obtenir le permalien et non le lien raccourci. Quelqu'un peut-il me dire comment faire ?
Santé
Personnel éditorial
Remplacez
echo wp_get_shortlink(get_the_ID());parthe_permalink();Admin
Gretchen Louise
Y a-t-il un moyen simple de le faire fonctionner aussi sur les pages uniques ?
Personnel éditorial
Oui. Changez la ligne 2 du code de :
if (is_single()) à if (is_singular())
Admin
Gretchen Louise
Merci ! Ça fonctionne, sauf que ça ne récupère pas de lien pour les pages... seulement pour les articles.
Personnel éditorial
C'est étrange. get_the_id devrait fonctionner pour les pages et les articles.
Gretchen Louise
Je l'ai fait fonctionner sur KindredGrace.com mais il ne récupère pas l'ID des pages, seulement des articles.
Personnel éditorial
Essayez d'ajouter la variable globale. Parce que get_the_id fonctionne pour les articles et les pages sont aussi un « type d'article »
Gretchen Louise
Je l'ai essayé comme ça et toujours pas de chance pour récupérer le shortlink pour les pages :
// Ajouter le texte du copyright
function add_copyright_text() {
global $post; { ?>
Brian York
Ce changement a fonctionné pour moi. Cependant, vérifiez bien que votre contenu est sous 'entry-content' sinon changez-le (F12 dans Chrome). Merci WPBeginner !!
Brian York
En fait, cela ne fonctionne pas tout à fait correctement. Cela ne fonctionne pas du tout dans IE et peu importe ce que je fais, il ne copie pas la partie HTML mais la convertit toujours en texte brut, ce qui ne ferait jamais un lien.
alan
J'ai le même problème, il supprime tout le format, quelqu'un connaît une solution à cela ?
VIVROCKS
Super astuce. Il existe aussi un plugin pour cela : http://wordpress.org/extend/plugins/read-more-copy-link/
Collin Weeks
J'adore votre site web ! Merci d'avoir pris le temps de partager avec tout le monde.
Mairaj Pirzada
Beau post, mais je n'aime pas le codage, ça me confond !
Helder
Ça ne fonctionne pas, même avec le contenu de wpbeginner.com
Personnel éditorial
Nous avons retiré le code de notre site web. Certains utilisateurs se sont plaints qu'ils le trouvaient ennuyeux.
Admin
Rafiul Islam
WOW… Merci beaucoup de partager ça,, j'en souffre...
Merci encore.
Lorenzo Solís
Quelqu'un sait comment ne pas afficher le lien « Lire la suite » lorsque le titre de l'article est copié ?
Merci !
Personnel éditorial
Oui, c'est possible. Changez la balise sélecteur de body à un ID de div ou autre. J'ai fait la demande. Nos développeurs me le feront savoir, pour que je puisse mettre à jour l'article.
Admin
Lorenzo Solís
Merci. Je viens d'essayer avec var div = document.getElementById(‘copyright’); à la ligne 6 et en ajoutant de id=”copyright” au contenu du div, mais j'obtiens le même résultat qu'avec votre code. Désolé, je ne suis pas programmeur.
Personnel éditorial
Regardez le code maintenant. Ça devrait marcher.
Paul
Merci, cela semble intéressant, je vais l'essayer bientôt
Lisa
Cela a également bien fonctionné dans un nouvel e-mail composé depuis Outlook, donc je dirais que c'est un problème de Gmail. Merci !
Personnel éditorial
Je viens de l'essayer avec Gmail… Ça marche bien ici.
Admin
Lisa
Intéressant et utile ; cependant, j'ai été surpris que le test de copie n'ait pas fonctionné (du moins pour moi) lors de la composition d'un e-mail dans Gmail — rien ne s'est affiché après avoir collé le texte copié, et la zone de texte du corps dans la fenêtre de composition de l'e-mail s'est simplement figée. Tester un extrait copié dans Notepad a très bien fonctionné, donc je ne sais pas quel pourrait être le problème avec Gmail.
Merci pour le tuyau !
Albert Albs
C'est une bonne option Syed. Merci de partager. Mais si nous pouvons imprimer l'URL courte de l'article, ce serait encore mieux pour les propriétaires de sites web.
Actuellement, il imprime une longue URL. Si je suis arrivé ici par un abonnement à la newsletter Feedburner, l'URL de suivi UTM est également présente.
J'espère que vous comprenez. Est-ce possible ?
Personnel éditorial
Ah hah. Bonne suggestion. Je l'inscris sur la liste des choses à faire pour WPBeginner.
Edit: Just updated the code
Admin
Albert Albs
C'est rapide et intelligent.
Une question : pourquoi avez-vous supprimé l'URL de l'auteur dans le formulaire de commentaire ? Je vois toujours, sur de nombreux blogs propulsés par WordPress, que le crédit est donné à l'auteur du commentaire dans le champ URL avec l'attribut NoFollow.
Y a-t-il une raison spécifique pour supprimer le champ URI de l'auteur ? Ou y a-t-il des expériences pour la mise à jour Penguin ?
Au fait, je ne reçois aucune notification de commentaire, même après avoir sélectionné l'option « Prévenez-moi des commentaires suivants par e-mail ».
Gabe Diaz
Wow, voilà une excellente astuce ! Elle permet de citer facilement et de montrer l'attribution, tout en ajoutant un lien pour ceux qui survolent et volent du contenu. Très cool !
Emily Sandford
Merci beaucoup pour cela. C'était tellement facile à faire, et c'est quelque chose que je me demandais depuis un bon moment. J'apprécie !