Você pode ter notado como alguns sites populares (como eHow, etc.) anexam um link "leia mais" a qualquer texto copiado de seu site. Esta é uma ótima maneira de conseguir novos usuários. Muitas vezes, as pessoas copiam e colam textos de sites em e-mails. Algumas usam para salvar as informações para o futuro, enquanto outras estão apenas compartilhando com amigos, familiares e colegas. Neste artigo, vamos mostrar como você pode facilmente adicionar um link "leia mais" a qualquer texto copiado do seu blog WordPress, para que você possa obter tráfego adicional.
Observação: Para ver isso em ação, copie qualquer coisa neste post e cole em seu e-mail ou bloco de notas.
A primeira coisa que você precisa fazer é copiar o seguinte código para o arquivo functions.php do seu tema ou um plugin específico do 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');
Agora, sempre que alguém visitar seu site e tentar copiar seu conteúdo, um link "leia mais" será incluído. Não se esqueça de alterar o texto de direitos autorais e adicionar o título do seu próprio site lá.
Edição: Inicialmente, estávamos obtendo o URL da janela, mas como um de nossos usuários apontou, isso tornava os URLs feios. Atualizamos o código para mostrá-lo apenas em páginas de posts individuais e usar o wp_shortlink. Assim, ele usaria algo como: seudominio.com/?p=23. Se você estiver usando um URL curto personalizado como nós: wpbeg.in, ele mostrará o URL curto de marca.


Bee
Olá,
este código não parece funcionar, nem no seu site aqui nem no meu site usando seu snippet (WP 6.2). Você poderia verificar isso, por favor? Obrigado.
WPBeginner Support
O código ainda está funcionando para nós, recomendamos tentar desativar quaisquer plugins e/ou usar um navegador anônimo para evitar extensões e ver se alguma pode estar causando um conflito.
Admin
Edward Elric
Isso ainda funciona em 2020 com o WordPress mais recente?
WPBeginner Support
A menos que ouçamos o contrário, o código ainda deve funcionar quando adicionado ao seu site.
Admin
Junuk
Olá, obrigado pelas suas boas informações!
Apliquei o código que você me disse com o plugin Bitly no meu site, mas ele funciona às vezes e às vezes não.
Este código tem relação com o plugin de Cache? Você pode me dizer onde no meu site devo olhar?
WPBeginner Support
Se você tiver um plugin de cache ativado, provavelmente precisará limpar todo o cache do seu site para que ele seja atualizado corretamente. Para limpar seu cache, você pode consultar nosso guia aqui: https://014.leahstevensyj.workers.dev/beginners-guide/how-to-clear-your-cache-in-wordpress/
Admin
Pierre
Olá,
Obrigado, funciona bem em artigos em 2019, mas é possível fazê-lo funcionar em um tipo de postagem personalizada?
Eu tenho Eventon e WP News and Scrolling Widgets.
WPBeginner Support
Você precisaria modificar `is_single` para `is_singular` e adicionar o nome do seu tipo de postagem personalizada
Admin
Will
Você tem algum conselho sobre como adicionar parâmetros de rastreamento do Google ao final de cada URL? Considerando que você já está usando `?p=` para o nome da postagem no final.
Akash
Existe uma maneira fácil de fazer funcionar em categorias também?
Jasmine
Obrigado por isso, funciona muito bem para posts, mas quando o texto é copiado de eventos, ele não puxa o URL da página – alguma dica? Obrigado.
Michele
Isso é incrível. Obrigado. Quando diz class – entry content, isso significava que não funcionou para cerca de 90% do texto no meu site porque meu texto não usava esse nome de classe. Então, se mais alguém encontrar esse problema, você pode mudar "entry content" para "body". Foi o que eu fiz.
var body_element = document.getElementsByTagName(‘body’)[0]; (linha 13)
Agora funciona em todos os lugares.
Meenu
Como posso limitar o conteúdo?
Dave
Muito obrigado, toda a formatação de texto foi alterada e colada como uma única linha. Mas preciso da formatação de texto como está. Então, por favor, ajude-me a conseguir isso.
Ark
O mesmo aqui, todas as quebras de linha estão faltando após a colagem.
Jens | Sir Apfelot
Damn… I am stupid… I added it to the themes custom JS… thats not working.
Jens | Sir Apfelot
Acabei de adicionar o script ao meu blog do WordPress, mas não recebo um apêndice no final da área de transferência...
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
Ao colar no blogger, o seguinte erro aparece
Erro ao analisar XML, linha 2237, coluna 96: O valor do atributo “href” associado a um tipo de elemento “a” não deve conter o caractere ‘<'.
Alguma solução?
Obrigado.
matt
este recurso torna a cópia e colagem mais frustrante. Por exemplo, se eu copiar e colar um título para editar a Wikipedia, isso pode bagunçar a formatação se eu não for cuidadoso e exigir trabalho extra.
Anon
Como usuário, não aguento isso. Por favor, não adicione isso.
Alan
Alguém sabe como manter o formato?
Ao usar este plugin, todos os espaços, quebras de linha e formatação desaparecem.
Philip-Daniel Kleudgen
Funciona que é uma maravilha! A única coisa que eu gostaria que fizesse era limitar a quantidade de texto copiado para, por exemplo, 150 palavras ou algo assim.
Salud Casera
Não funciona mais para mim.
Funcionava antes, mas acho que tem mais a ver com o tema do que com a versão do WP
Alyson
Infelizmente, o código não funciona com o WP 3.8
Testei em uma instalação limpa. Sinta-se à vontade para confirmar isso. Você tem planos de atualizar o código para fazê-lo funcionar?
WPBeginner Support
Acabamos de testar com uma instalação limpa do WP 3.8 e está funcionando perfeitamente do nosso lado.
Admin
Erik
Na verdade, eu também não consigo fazer isso funcionar.
Roselle
Olá,
No início, eu não conseguia fazer isso funcionar. Mas após uma análise cuidadosa, descobri o culpado:
Na 8ª linha do código, você verá isto:
document.getElementsByClassName(‘entry-content’)[0], true))
Esta é a linha que diz ao código: “ei, se alguém copiar texto de um texto com este nome de classe, então coloque um link de leia mais”
Tudo o que você precisa fazer é usar o Firebug para descobrir sob qual nome de classe o conteúdo do seu post está.
Eu tenho um tema filho que editei várias vezes, então o meu não era o padrão, “entry-content”. Suspeito que o seu nome de classe também seja diferente.
Boa sorte,
Roselle
Salud Casera
Quais são os passos a seguir com o Firebug para descobrir o nome da classe do post?
Gabriel
Olá,
Muito obrigado por este ótimo artigo, mas tenho um problema. Eu gostaria de obter o link permanente e não o link encurtado. Alguém pode me dizer como posso fazer isso?
Abraços
Equipe Editorial
Substitua
echo wp_get_shortlink(get_the_ID());porthe_permalink();Admin
Gretchen Louise
Existe uma maneira fácil de fazer isso funcionar em páginas únicas também?
Equipe Editorial
Sim. Altere o código da linha 2 de:
if (is_single()) para if (is_singular())
Admin
Gretchen Louise
Obrigado! Isso funciona, exceto que não pega um link para páginas… apenas posts.
Equipe Editorial
Isso é estranho. get_the_id deveria funcionar para páginas e posts.
Gretchen Louise
Eu tenho funcionando em KindredGrace . com, mas não pega o id para páginas, apenas posts.
Equipe Editorial
Tente adicionar a variável global. Porque get_the_id funciona para posts e páginas também são um “tipo de post”
Gretchen Louise
Eu tentei assim e ainda sem sorte em pegar o shortlink para páginas:
// Adiciona texto de copyright
function add_copyright_text() {
global $post; { ?>
Brian York
Essa alteração funcionou para mim. No entanto, verifique se você tem seu conteúdo sob ‘entry-content’, caso contrário, altere isso (F12 no Chrome). Obrigado WPBeginner!!
Brian York
Na verdade, isso não funciona muito bem. Não funciona no IE e, não importa o que eu faça, ele não copia a parte HTML, mas sempre a converte em texto simples, portanto, nunca criaria um link.
alan
Tenho o mesmo problema, ele remove toda a formatação, alguém sabe uma solução para isso?
VIVROCKS
Ótimo Truque. existe um plugin também para isso: http://wordpress.org/extend/plugins/read-more-copy-link/
Collin Weeks
Adoro seu site! Obrigado por dedicar tempo para compartilhar com todos.
Mairaj Pirzada
Bom Post, mas eu sempre não gosto de codificações, isso me confunde!
Helder
Não está funcionando, mesmo com o conteúdo do wpbeginner.com
Equipe Editorial
Retiramos o código do nosso site. Alguns usuários reclamaram que o acharam irritante.
Admin
Rafiul Islam
UAU… Muito, muito obrigado por compartilhar,, estou sofrendo por isso…
Obrigado novamente.
Lorenzo Solís
Alguém sabe como não mostrar o "Link Leia Mais" quando o título da postagem é copiado?
Obrigado!
Equipe Editorial
Sim, é possível. Altere a tag seletora de body para um ID de div ou algo assim. Coloquei a solicitação. Nossos desenvolvedores me informarão, para que eu possa atualizar o artigo.
Admin
Lorenzo Solís
Obrigado. Acabei de tentar com var div = document.getElementById(‘copyright’); na linha número 6 e adicionando de id=\"copyright\" ao conteúdo da div, mas obtenho o mesmo resultado que com o seu código. Desculpe, não sou programador.
Equipe Editorial
Verifique o código agora. Deve funcionar.
Paul
Obrigado, isso parece interessante, vou experimentar em breve
Lisa
Também funcionou bem em um novo e-mail composto do Outlook, então eu diria que é um problema do Gmail. Obrigado!
Equipe Editorial
Acabei de tentar com o Gmail.. Funciona bem aqui.
Admin
Lisa
Interessante e útil; no entanto, fiquei surpreso que o teste de cópia não funcionou (pelo menos para mim) ao compor um e-mail no Gmail — nada apareceu após colar o texto copiado, e a área de texto do corpo na janela de composição de e-mail simplesmente travou. Testar um trecho copiado no Bloco de Notas funcionou perfeitamente, então não sei qual pode ser o problema com o Gmail.
Obrigado pela dica!
Albert Albs
Essa é uma boa opção, Syed. Obrigado por compartilhar. Mas se pudermos imprimir o URL curto da postagem, isso é ainda melhor para os proprietários do site.
Atualmente, ele está imprimindo o URL longo. Se cheguei aqui por assinatura da newsletter do Feedburner, o URL de rastreamento UTM também está vindo.
Espero que entenda. É possível?
Equipe Editorial
Ah hah. Boa sugestão. Anotando na lista de coisas a fazer para o WPBeginner.
Edit: Just updated the code
Admin
Albert Albs
Isso é rápido e inteligente.
Uma pergunta: Por que você removeu o URL do autor no formulário de comentários? Sempre, eu vejo, muitos blogs com WordPress dão crédito ao autor do comentário no campo URL com o atributo NoFollow.
Existe algum motivo específico para remover o campo URI do autor? Ou existem experimentos para a atualização Penguin?
Aliás, não estou recebendo nenhuma notificação de comentário, mesmo após selecionar a opção "Notifique-me sobre comentários de acompanhamento por e-mail".
Gabe Diaz
Uau, agora essa é uma ótima dica! Facilita citar e mostrar atribuição, além de deixar um link para aqueles que escaneiam e roubam conteúdo. Muito legal!
Emily Sandford
Muito obrigado por isso. Foi tão fácil de fazer, e algo que eu me perguntei por um bom tempo. Agradeço!