Como Adicionar um Link "Leia Mais" ao Texto Copiado no WordPress

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.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

59 CommentsLeave a Reply

  1. 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.

    • 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

  2. 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?

  3. 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.

    • Você precisaria modificar `is_single` para `is_singular` e adicionar o nome do seu tipo de postagem personalizada

      Admin

  4. 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.

  5. 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.

    • 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.

  6. 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.

  7. 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… :-(

  8. 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.

  9. 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.

  10. Alguém sabe como manter o formato?

    Ao usar este plugin, todos os espaços, quebras de linha e formatação desaparecem.

  11. 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?

    • 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

  12. 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

    • 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

      • 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.

  13. Também funcionou bem em um novo e-mail composto do Outlook, então eu diria que é um problema do Gmail. Obrigado!

  14. 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!

  15. 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?

      • 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".

  16. 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!

Deixar uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.