Du kanske har märkt hur vissa populära webbplatser (som eHow etc.) lägger till en "läs mer"-länk till all text som kopieras från deras webbplats. Detta är ett utmärkt sätt att få nya användare. Ofta kopierar och klistrar folk in text från webbplatser till e-post. Vissa använder det för att spara informationen för framtiden, medan andra bara delar den med sina vänner, familj och kollegor. I den här artikeln kommer vi att visa dig hur du enkelt kan lägga till en "läs mer"-länk till all kopierad text från din WordPress-blogg, så att du kan få ytterligare trafik.
Obs: För att se detta i praktiken, kopiera något på det här inlägget och klistra in det i din e-post eller anteckningsblock.
Första du behöver göra är att kopiera följande kod till din temas functions.php-fil eller en webbplats-specifik plugin:
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');
Nu, när någon besöker din webbplats och försöker kopiera ditt innehåll, kommer en läs mer-länk att inkluderas tillsammans med det. Glöm inte att ändra copyrighttexten och lägga till din egen webbplats titel där.
Redigering: Ursprungligen hämtade vi fönstrets URL, men som en av våra användare påpekade gjorde det URL:erna klumpiga. Vi har uppdaterat koden för att bara visa den på enstaka inläggssidor och använda wp_shortlink. Så det skulle se ut ungefär så här: yoursite.com/?p=23. Om du använder en anpassad kort länk som vi gör: wpbeg.in, då visas den varumärkesskyddade korta länken.

Bee
Hej,
Den här koden verkar inte fungera, varken på din webbplats här eller på min webbplats med ditt kodavsnitt (WP 6.2). Kan du kontrollera detta? Tack.
WPBeginner Support
Koden fungerar fortfarande för oss, vi rekommenderar att du försöker inaktivera alla plugins och/eller använda en inkognitowebbbläsare för att förhindra tillägg för att se om något kan orsaka en konflikt.
Admin
Edward Elric
Fungerar detta fortfarande 2020 med senaste Wordpress?
WPBeginner Support
Om vi inte hör något annat, bör koden fortfarande fungera när den läggs till på din webbplats.
Admin
Junuk
Hej, tack för din bra information!
Jag tillämpade koden du gav mig med BItly-pluginet på min webbplats, men det fungerar ibland och ibland inte.
Har den här koden något samband med Cache-plugin? Kan du tala om för mig var på min webbplats jag ska titta?
WPBeginner Support
Om du har en cachningsplugin aktiverad, skulle du troligen behöva rensa all cache på din webbplats för att den ska uppdateras korrekt. För att rensa din cache kan du titta på vår guide här: https://014.leahstevensyj.workers.dev/beginners-guide/how-to-clear-your-cache-in-wordpress/
Admin
Pierre
Hej,
Tack, det fungerar bra på artiklar från 2019, men är det möjligt att få det att fungera på anpassade inläggstyper?
Jag har Eventon och WP News och Scrolling Widgets.
WPBeginner Support
Du skulle behöva ändra is_single till is_singular och lägga till namnet på din anpassade inläggstyp
Admin
Med vänliga hälsningar
Har du några råd om hur man lägger till Google-spårningsparametrar i slutet av varje URL? Med tanke på att du redan använder ?p= för inläggsnamnet i slutet.
Akash
Finns det ett enkelt sätt att få det att fungera även för kategorier?
Jasmine
Tack för detta, det fungerar utmärkt för inlägg men när text kopieras från händelser dras inte URL:en för sidan med – några råd? Tack.
Michele
Det här är fantastiskt. Tack. När det står class – entry content, så menade det att det inte fungerade för ungefär 90% av texten på min webbplats eftersom min text inte använde det klassnamnet. Så om någon annan stöter på det här problemet kan du ändra "entry content" till "body". Det är vad jag gjorde.
var body_element = document.getElementsByTagName(‘body’)[0]; (rad 13)
Nu fungerar det överallt.
Meenu
Hur kan jag begränsa innehållet?
Dave
Tack så mycket, all textformatering ändrades och klistrades in som en enda rad. Men jag behöver textformateringen som den är. Så snälla hjälp mig med detta.
Ark
Samma här, alla radbrytningar saknas efter inklistringen.
Jens | Sir Apfelot
Damn… I am stupid… I added it to the themes custom JS… thats not working.
Jens | Sir Apfelot
Jag har precis lagt till skriptet i min wordpress-blogg, men jag får ingen bilaga i slutet av klippbordet...
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
Vid inklistring till blogger kommer följande felmeddelande:
Fel vid tolkning av XML, rad 2237, kolumn 96: Värdet för attributet "href" associerat med elementtypen "a" får inte innehålla tecknet '<'.
Några lösningar?
Tack.
matt
den här funktionen gör kopiering och inklistring mer frustrerande. Om jag till exempel kopierar och klistrar in en rubrik för att redigera Wikipedia kan det förstöra formateringen om jag inte är försiktig och kräver extra arbete.
Anon
Som användare kan jag inte stå ut med detta. Vänligen lägg inte till detta.
Alan
Vet någon hur man behåller formatet?
När du använder det här pluginet försvinner alla mellanslag, radbrytningar och formatering.
Philip-Daniel Kleudgen
Fungerar som en charm! Det enda jag önskar att den skulle göra är att begränsa mängden kopierad text till exempelvis 150 ord eller något liknande.
Salud Casera
Fungerar inte längre för mig.
Det fungerade tidigare men jag tror att det har mer att göra med temat än med WP-versionen
Alyson
Tyvärr fungerar koden inte med WP 3.8
Jag har testat det på en ny installation. Känn dig fri att bekräfta detta. Har du några planer på att uppdatera koden för att få den att fungera?
WPBeginner Support
Vi testade den nyss med en ny WP 3.8-installation och den fungerar perfekt på vår sida.
Admin
Erik
Jag får inte heller detta att fungera.
Roselle
Hej,
Först kunde jag inte få det här att fungera. Men vid närmare granskning insåg jag boven:
På den 8:e raden i koden ser du detta:
document.getElementsByClassName(‘entry-content’)[0], true))
Det här är raden som talar om för koden: "hej, om någon kopierar text från text med det här klassnamnet, lägg då till en läs mer-länk"
Allt du behöver göra är att använda Firebug för att ta reda på vilket klassnamn ditt inläggsinnehåll ligger under.
Jag har ett barn-tema som jag har redigerat om och om igen, så mitt var inte standard, "entry-content". Jag misstänker att ditt klassnamn skiljer sig från det också.
Lycka till,
Roselle
Salud Casera
Vilka steg ska man följa med Firebug för att ta reda på inläggsklassnamnet?
Gabriel
Hej,
Tack så mycket för den här fantastiska artikeln, men jag har ett problem. Jag skulle vilja ha permalänken och inte den förkortade länken. Kan någon säga mig hur jag kan göra det?
Skål
Redaktionell personal
Ersätt
echo wp_get_shortlink(get_the_ID());medthe_permalink();Admin
Gretchen Louise
Finns det ett enkelt sätt att få det att fungera även på enstaka sidor?
Redaktionell personal
Ja. Ändra rad 2 i koden från:
if (is_single()) till if (is_singular())
Admin
Gretchen Louise
Tack! Det fungerar, förutom att det inte hämtar en länk för sidor... bara inlägg.
Redaktionell personal
Det är konstigt. get_the_id borde fungera för både sidor och inlägg.
Gretchen Louise
Jag har det fungerande på KindredGrace . com men det hämtar inte id för sidor, bara inlägg.
Redaktionell personal
Försök att lägga till den globala variabeln. Eftersom get_the_id fungerar för inlägg och sidor är också en ”post type”
Gretchen Louise
Jag försökte så här och fortfarande ingen lycka med att hämta den korta länken för sidor:
// Lägg till upphovsrättstext
function add_copyright_text() {
global $post; { ?>
Brian York
Denna ändring fungerade för mig. Dubbelkolla dock att du har ditt innehåll under 'entry-content' annars ändra det (F12 i Chrome). Tack WPBeginner!!
Brian York
Faktum är att detta inte fungerar riktigt. Det fungerar inte alls i IE och oavsett vad jag gör så kopierar den inte HTML-delen utan konverterar den alltid till vanlig text, vilket aldrig skulle skapa en länk.
alan
Jag har samma problem, det tar bort all formatering, vet någon en lösning på detta?
VIVROCKS
Bra knep. Det finns också ett plugin för detta: http://wordpress.org/extend/plugins/read-more-copy-link/
Collin Weeks
Älskar din webbplats! Tack för att du tog dig tid att dela med dig till alla.
Mairaj Pirzada
Snyggt inlägg men jag gillar inte kodning, det förvirrar mig!
Helder
Det fungerar inte, inte ens med wpbeginner.com-innehåll
Redaktionell personal
Vi tog bort koden från vår webbplats. Vissa användare klagade över att de tyckte att den var irriterande.
Admin
Rafiul Islam
WOW… Tusen tack för att du delade det,, Jag lider av detta…
Tack igen.
Lorenzo Solís
Vet någon hur man inte visar "Läs mer-länken" när inläggstiteln kopieras?
Tack!
Redaktionell personal
Ja, det är möjligt. Ändra selektortaggen från body till ett div-ID eller liknande. Jag har skickat in begäran. Våra utvecklare kommer att meddela mig, så att jag kan uppdatera artikeln.
Admin
Lorenzo Solís
Tack. Jag har precis provat med var div = document.getElementById(‘copyright’); på rad 6 och lagt till id=”copyright” till div-innehållet, men jag får samma resultat som med din kod. Tyvärr är jag ingen programmerare.
Redaktionell personal
Kolla in koden nu. Den borde fungera.
Paul
Tack, det här ser intressant ut, jag ska prova det snart
Lisa
Det fungerade också bra i ett nytt e-postmeddelande som skapades från Outlook, så jag skulle säga att det är ett Gmail-problem. Tack!
Redaktionell personal
Provade det precis med Gmail.. Det fungerar bra här.
Admin
Lisa
Intressant och användbart; dock blev jag förvånad över att kopieringstestet inte fungerade (åtminstone för mig) när jag komponerade ett e-postmeddelande i Gmail — ingenting visades efter att ha klistrat in den kopierade texten, och textområdet i e-postfönstret frös bara. Att testa ett kopierat stycke i Anteckningar fungerade alldeles utmärkt, så jag vet inte vad problemet kan vara med Gmail.
Tack för tipset!
Albert Albs
Det är ett bra alternativ Syed. Tack för att du delade med dig. Men om vi kan skriva ut den korta URL:en för inlägget, är det ännu bättre för webbplatsägare.
För närvarande skrivs en lång URL ut. Om jag kom hit via en prenumeration på Feedburner-nyhetsbrevet, kommer UTM-spårnings-URL:en också med.
Hoppas du förstår. Är det möjligt?
Redaktionell personal
Ah hah. Bra förslag. Skriver ner det på listan över saker att göra för WPBeginner.
Edit: Just updated the code
Admin
Albert Albs
Det är snabbt och smart.
En fråga: Varför tog du bort författarens URL i kommentarsformuläret? Jag ser alltid att många WordPress-drivna bloggar ger kredit till kommentarsförfattaren i URL-fältet med NoFollow-attributet.
Finns det någon specifik anledning till att ta bort fältet Author URI? Eller finns det några experiment för Penguin-uppdateringen?
Förresten, jag får inga kommentaraviseringar, inte ens efter att ha valt alternativet ”Meddela mig om uppföljande kommentarer via e-post”.
Gabe Diaz
Wow, nu är det här ett bra tips! Gör det enkelt att citera och visa attribution samt lägga till en länk för dem som skummar och stjäl innehåll. Mycket coolt!
Emily Sandford
Tack så mycket för detta. Det var så lätt att göra, och något jag undrade över under ganska lång tid. Uppskattas!