Potresti aver notato come alcuni siti web popolari (come eHow, ecc.) aggiungono un link "leggi di più" a qualsiasi testo copiato dal loro sito. Questo è un ottimo modo per ottenere nuovi utenti. Spesso le persone copiano e incollano testo dai siti web nelle email. Alcuni lo usano per salvare le informazioni per il futuro, mentre altri le condividono semplicemente con amici, familiari e colleghi. In questo articolo ti mostreremo come aggiungere facilmente un link "leggi di più" a qualsiasi testo copiato dal tuo blog WordPress, in modo da ottenere traffico aggiuntivo.
Nota: Per vederlo in azione, copia qualsiasi cosa su questo post e incollala nella tua email o nel blocco note.
La prima cosa da fare è copiare il seguente codice nel file functions.php del tuo tema o in un plugin specifico per sito:
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');
Ora, ogni volta che qualcuno visita il tuo sito web e cerca di copiare i tuoi contenuti, verrà incluso un link "leggi di più". Non dimenticare di cambiare il testo del copyright e di aggiungere il titolo del tuo sito.
Modifica: Inizialmente stavamo recuperando l'URL della finestra, ma come ha sottolineato uno dei nostri utenti, questo rendeva gli URL ingombranti. Abbiamo aggiornato il codice per mostrarlo solo nelle pagine dei singoli post e utilizzare wp_shortlink. Quindi mostrerebbe qualcosa come: tuosito.com/?p=23. Se stai usando un URL breve personalizzato come facciamo noi: wpbeg.in, allora mostrerà l'URL breve del marchio.

Bee
Ciao,
questo codice non sembra funzionare, né sul tuo sito web qui né sul mio sito web utilizzando il tuo snippet (WP 6.2). Potresti per favore controllare questo? Grazie.
Supporto WPBeginner
Il codice funziona ancora per noi, ti consigliamo di provare a disabilitare eventuali plugin e/o utilizzare un browser in incognito per impedire ai componenti aggiuntivi di vedere se uno potrebbe causare un conflitto.
Amministratore
Edward Elric
Funziona ancora nel 2020 con l'ultima versione di Wordpress?
Supporto WPBeginner
A meno che non sentiamo diversamente, il codice dovrebbe ancora funzionare quando aggiunto al tuo sito.
Amministratore
Junuk
Ciao, grazie per le tue buone informazioni!
Ho applicato il codice che mi hai detto con il plugin BItly al mio sito web, ma a volte funziona e a volte no.
Questo codice ha una relazione con il plugin Cache? Puoi dirmi dove nel mio sito web dovrei guardare?
Supporto WPBeginner
Se hai un plugin di caching abilitato, probabilmente dovrai cancellare tutta la cache del tuo sito affinché si aggiorni correttamente. Per cancellare la tua cache, potresti voler consultare la nostra guida qui: https://www.wpbeginner.com/beginners-guide/how-to-clear-your-cache-in-wordpress/
Amministratore
Pierre
Ciao,
Grazie, funziona bene sugli articoli nel 2019, ma è possibile farlo funzionare sui tipi di post personalizzati?
Ho Eventon e WP News and Scrolling Widgets.
Supporto WPBeginner
Dovresti modificare is_single in is_singular e aggiungere il nome del tuo tipo di post personalizzato
Amministratore
Will
Hai qualche consiglio su come aggiungere parametri di tracciamento Google alla fine di ogni URL? Considerando che stai già usando ?p= per il nome del post alla fine.
Akash
C'è un modo semplice per farlo funzionare anche per le categorie?
Jasmine
Grazie per questo, funziona benissimo per i post ma quando il testo viene copiato dagli eventi non estrae l'URL della pagina - qualche consiglio? Grazie.
Michele
Questo è fantastico. Grazie. Quando dice class – entry content, intendeva dire che non ha funzionato per circa il 90% del testo sul mio sito perché il mio testo non utilizzava quel nome di classe. Quindi, se qualcun altro incontra questo problema, può cambiare "entry content" in "body". Questo è quello che ho fatto.
var body_element = document.getElementsByTagName(‘body’)[0]; (riga 13)
Ora funziona ovunque.
Meenu
Come posso limitare il contenuto?
Dave
Grazie mille, tutta la formattazione del testo è stata cambiata e incollata come una singola riga. Ma ho bisogno della formattazione del testo così com'è. Quindi per favore aiutami a ottenerla.
Ark
Stessa cosa qui, tutte le interruzioni di riga mancano dopo l'incolla.
Jens | Sir Apfelot
Damn… I am stupid… I added it to the themes custom JS… thats not working.
Jens | Sir Apfelot
Ho appena aggiunto lo script al mio blog di WordPress, ma non ottengo un'appendice alla fine degli appunti!
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
Incollandolo su Blogger, si verifica il seguente errore:
Errore nell'analisi XML, riga 2237, colonna 96: Il valore dell'attributo "href" associato a un tipo di elemento "a" non deve contenere il carattere "<".
Qualche soluzione?
Grazie.
matt
questa funzionalità rende la copia e incolla più frustrante. Ad esempio, se copio e incollo un titolo per modificare Wikipedia, può rovinare la formattazione se non sto attento e richiede lavoro extra.
Anon
Come utente, non lo sopporto. Per favore, non aggiungerlo.
Alan
Qualcuno sa come mantenere il formato?
Quando si utilizza questo plugin, tutti gli spazi, le interruzioni di riga e il formato scompaiono.
Philip-Daniel Kleudgen
Funziona alla grande! L'unica cosa che vorrei è che limitasse la quantità di testo copiato a, ad esempio, 150 parole o qualcosa del genere.
Salud Casera
Non funziona più per me.
Funzionava prima, ma penso che abbia più a che fare con il tema piuttosto che con la versione di WP
Alyson
Sfortunatamente, il codice non funziona con WP 3.8
L'ho testato su un'installazione pulita. Sentiti libero di confermarlo. Hai in programma di aggiornare il codice per farlo funzionare?
Supporto WPBeginner
L'abbiamo appena testato con una nuova installazione di WP 3.8 e funziona perfettamente dalla nostra parte.
Amministratore
Erik
In realtà, nemmeno io riesco a farlo funzionare.
Roselle
Salve,
All'inizio, non riuscivo a farlo funzionare. Ma dopo un'attenta analisi, ho capito il colpevole:
All'ottava riga del codice, vedrai questo:
document.getElementsByClassName(‘entry-content’)[0], true))
Questa è la riga che dice al codice: "ehi, se qualcuno copia testo da un testo con questo nome di classe, allora metti un link "leggi di più"
Tutto quello che devi fare è usare Firebug per capire sotto quale nome di classe si trova il contenuto del tuo post.
Ho un tema figlio che ho modificato più e più volte, quindi il mio non era il predefinito, "entry-content". Sospetto che anche il tuo nome di classe sia diverso da quello.
In bocca al lupo,
Roselle
Salud Casera
Quali sono i passaggi da seguire con Firebug per scoprire il nome della classe del post?
Gabriel
Salve,
Molte grazie per questo ottimo articolo, ma ho un problema. Vorrei ottenere il permalink e non il link abbreviato. Qualcuno può dirmi come posso fare?
Saluti
Staff editoriale
Sostituisci
echo wp_get_shortlink(get_the_ID());conthe_permalink();Amministratore
Gretchen Louise
C'è un modo semplice per farlo funzionare anche nelle pagine singole?
Staff editoriale
Sì. Cambia la riga 2 del codice da:
if (is_single()) a if (is_singular())
Amministratore
Gretchen Louise
Grazie! Funziona, tranne per il fatto che non acquisisce un link per le pagine... solo per i post.
Staff editoriale
È strano. get_the_id dovrebbe funzionare sia per le pagine che per i post.
Gretchen Louise
Funziona su KindredGrace . com ma non acquisisce l'ID per le pagine, solo per i post.
Staff editoriale
Prova ad aggiungere la variabile globale. Poiché get_the_id funziona per i post e le pagine sono anche un "tipo di post".
Gretchen Louise
Ci ho provato così e ancora niente da fare per acquisire lo shortlink per le pagine:
// Aggiungi testo del copyright
function add_copyright_text() {
global $post; { ?>
Brian York
Questa modifica ha funzionato per me. Tuttavia, controlla attentamente che il tuo contenuto sia sotto 'entry-content' altrimenti cambialo (F12 in Chrome). Grazie WPBeginner!!
Brian York
In realtà questo non funziona proprio bene. Non funziona affatto in IE e non importa cosa faccio, non copia la parte HTML ma la converte sempre in testo normale, quindi non creerebbe mai un link.
alan
Ho lo stesso problema, rimuove tutta la formattazione, qualcuno conosce una soluzione?
VIVROCKS
Ottimo trucco. Esiste anche un plugin per questo: http://wordpress.org/extend/plugins/read-more-copy-link/
Collin Weeks
Adoro il tuo sito web! Grazie per aver dedicato del tempo a condividere con tutti.
Mairaj Pirzada
Bel post, ma non mi piacciono mai le codifiche, mi confondono!
Helder
Non funziona, nemmeno con il contenuto di wpbeginner.com
Staff editoriale
Abbiamo rimosso il codice dal nostro sito web. Alcuni utenti si sono lamentati del fatto che lo trovavano fastidioso.
Amministratore
Rafiul Islam
WOW… Molte Molte Grazie per averlo condiviso,, Sto soffrendo per questo…
Grazie ancora.
Lorenzo Solís
Qualcuno sa come non mostrare il "Link Leggi tutto" quando il titolo del post viene copiato?
Grazie!
Staff editoriale
Sì, è possibile. Cambia il tag selettore da body a un ID div o altro. Ho inoltrato la richiesta. I nostri sviluppatori mi faranno sapere, così potrò aggiornare l'articolo.
Amministratore
Lorenzo Solís
Grazie. Ho appena provato con var div = document.getElementById(‘copyright’); alla riga 6 e aggiungendo de id=”copyright” al contenuto del div, ma ottengo lo stesso risultato che con il tuo codice. Scusa, non sono un programmatore.
Staff editoriale
Controlla il codice ora. Dovrebbe funzionare.
Paul
Grazie, questo sembra interessante, lo proverò presto
Lisa
Ha funzionato bene anche in una nuova email composta da Outlook, quindi direi che è un problema di Gmail. Grazie!
Staff editoriale
L'ho appena provato con Gmail.. Qui funziona bene.
Amministratore
Lisa
Interessante e utile; tuttavia, sono rimasto sorpreso che il test di copia non abbia funzionato (almeno per me) quando si componeva un'email in Gmail — non è apparso nulla dopo aver incollato il testo copiato, e l'area di testo del corpo nella finestra di composizione dell'email si è semplicemente bloccata. Testare un pezzo copiato in Blocco note ha funzionato bene, quindi non so quale possa essere il problema con Gmail.
Grazie per il suggerimento!
Albert Albs
Questa è una buona opzione Syed. Grazie per aver condiviso. Ma se potessimo stampare l'URL breve del post, sarebbe ancora meglio per i proprietari di siti web.
Attualmente stampa l'URL lungo. Se sono arrivato qui tramite un abbonamento alla newsletter di Feedburner, arriva anche l'URL di tracciamento UTM.
Spero tu capisca. È possibile?
Staff editoriale
Ah ah. Ottimo suggerimento. Lo scrivo nella lista delle cose da fare per WPBeginner.
Edit: Just updated the code
Amministratore
Albert Albs
È veloce e intelligente.
Una domanda: perché hai rimosso l'URL dell'autore nel modulo dei commenti? Sempre, vedo, molti blog basati su WordPress danno credito all'autore del commento nel campo URL con l'attributo NoFollow.
C'è un motivo specifico per rimuovere il campo URI dell'autore? O ci sono esperimenti per l'aggiornamento Penguin?
Tra l'altro, non ricevo alcuna notifica di commento, anche dopo aver selezionato l'opzione "Notificami i commenti successivi via e-mail".
Gabe Diaz
Wow, ora questo è un ottimo consiglio! Rende facile citare e mostrare l'attribuzione, oltre a inserire un link per coloro che scorrono e rubano contenuti. Molto bello!
Emily Sandford
Grazie mille per questo. È stato così facile da fare, e qualcosa che mi chiedevo da tempo. Apprezzo!