Es posible que hayas notado cómo algunos sitios web populares (como eHow, etc.) adjuntan un enlace de "leer más" a cualquier texto que se copie de su sitio. Esta es una excelente manera de conseguir nuevos usuarios. A menudo, la gente copia y pega texto de sitios web en correos electrónicos. Algunos lo usan para guardar la información para el futuro, mientras que otros simplemente la comparten con sus amigos, familiares y colegas. En este artículo, te mostraremos cómo puedes agregar fácilmente un enlace de "leer más" a cualquier texto copiado de tu blog de WordPress, para que puedas obtener tráfico adicional.
Nota: Para ver esto en acción, copia cualquier cosa de esta publicación y pégala en tu correo electrónico o bloc de notas.
Lo primero que debes hacer es copiar el siguiente código en el archivo functions.php de tu tema o en un plugin específico del sitio:
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');
Ahora, cada vez que alguien visite tu sitio web e intente copiar tu contenido, se incluirá un enlace de "leer más" junto con él. No olvides cambiar el texto de derechos de autor y agregar el título de tu propio sitio allí.
Edición: Inicialmente estábamos obteniendo la URL de la ventana, pero como uno de nuestros usuarios señaló, hacía que las URL se vieran torpes. Hemos actualizado el código para que solo se muestre en páginas de publicaciones individuales y use wp_shortlink. Así que usaría algo como esto: tucsitio.com/?p=23. Si estás usando un enlace corto personalizado como nosotros: wpbeg.in, entonces mostrará el enlace corto de marca.

Bee
Hola,
este código no parece funcionar, ni en tu sitio web aquí ni en mi sitio web usando tu fragmento (WP 6.2). ¿Podrías revisar esto, por favor? Gracias.
Soporte de WPBeginner
El código todavía nos funciona, te recomendamos intentar deshabilitar cualquier plugin y/o usar un navegador de incógnito para evitar que los complementos vean si alguno puede estar causando un conflicto.
Administrador
Edward Elric
¿Sigue funcionando esto en 2020 con la última versión de Wordpress?
Soporte de WPBeginner
A menos que oigamos lo contrario, el código debería seguir funcionando cuando se agregue a tu sitio.
Administrador
Junuk
¡Hola, gracias por tu buena información!
Apliqué el código que me dijiste con el plugin BItly en mi sitio web, pero a veces funciona y a veces no.
¿Tiene este código relación con el plugin de caché? ¿Puedes decirme dónde en mi sitio web debo mirar?
Soporte de WPBeginner
Si tienes un plugin de caché habilitado, probablemente necesitarás borrar toda la caché de tu sitio para que se actualice correctamente. Para borrar tu caché, puedes consultar nuestra guía aquí: https://www.wpbeginner.com/beginners-guide/how-to-clear-your-cache-in-wordpress/
Administrador
Pierre
Hola,
Gracias, funciona bien en artículos de 2019, pero ¿es posible hacerlo funcionar en tipos de publicación personalizados?
Tengo Eventon y WP News and Scrolling Widgets.
Soporte de WPBeginner
Necesitarías modificar `is_single` por `is_singular` y agregar el nombre de tu tipo de publicación personalizado.
Administrador
Will
¿Tienes algún consejo sobre cómo agregar parámetros de seguimiento de Google al final de cada URL? Considerando que ya estás usando `?p=` para el nombre de la publicación al final.
Akash
¿Hay una forma fácil de hacerlo funcionar también en las categorías?
Jasmine
Gracias por esto, funciona muy bien para las publicaciones, pero cuando el texto se copia de los eventos, no extrae la URL de la página. ¿Algún consejo? Gracias.
Michele
Esto es genial. Gracias. Cuando dice class – entry content, eso significó que no funcionó para aproximadamente el 90% del texto en mi sitio porque mi texto no usaba ese nombre de clase. Así que si alguien más encuentra este problema, puede cambiar "entry content" por "body". Eso es lo que hice.
var body_element = document.getElementsByTagName(‘body’)[0]; (línea 13)
Ahora funciona en todas partes.
Meenu
¿Cómo puedo limitar el contenido?
Dave
Muchas gracias, todo el formato del texto se cambió y se pegó como una sola línea. Pero necesito el formato del texto tal como está. Así que por favor ayúdenme a conseguir esto.
Ark
Lo mismo aquí, faltan todos los saltos de línea después de pegar.
Jens | Sir Apfelot
Damn… I am stupid… I added it to the themes custom JS… thats not working.
Jens | Sir Apfelot
Acabo de agregar el script a mi blog de WordPress, pero no obtengo un apéndice al final del portapapeles...
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
Al pegarlo en Blogger, aparece el siguiente error
Error al analizar XML, línea 2237, columna 96: El valor del atributo "href" asociado con un tipo de elemento "a" no debe contener el carácter "<”.
¿Alguna solución?
Gracias.
matt
Esta función hace que copiar y pegar sea más frustrante. Por ejemplo, si copio y pego un titular para editar Wikipedia, puede arruinar el formato si no tengo cuidado y requiere trabajo adicional.
Anónimo
Como usuario, no soporto esto. Por favor, no agregues esto.
Alan
¿Alguien sabe cómo mantener el formato?
Al usar este plugin, se pierden todos los espacios, saltos de línea y formato.
Philip-Daniel Kleudgen
¡Funciona a la perfección! Lo único que desearía es que limitara la cantidad de texto copiado a, por ejemplo, 150 palabras o algo así.
Salud Casera
Ya no me funciona.
Sin embargo, funcionaba antes, pero creo que tiene más que ver con el tema que con la versión de WP
Alyson
Desafortunadamente, el código no funciona con WP 3.8
Lo he probado en una instalación limpia. Por favor, siéntete libre de confirmarlo. ¿Tienes planes de actualizar el código para que funcione?
Soporte de WPBeginner
Acabamos de probarlo con una instalación limpia de WP 3.8 y está funcionando perfectamente de nuestro lado.
Administrador
Erik
De hecho, tampoco puedo hacer que esto funcione.
Roselle
Hola,
Al principio, no podía hacer que esto funcionara. Pero tras un examen minucioso, descubrí el culpable:
En la línea 8 del código, verás esto:
document.getElementsByClassName(‘entry-content’)[0], true))
Esta es la línea que le dice al código: “oye, si alguien copia texto de texto con este nombre de clase, entonces pon un enlace de leer más”.
Todo lo que necesitas hacer es usar Firebug para averiguar bajo qué nombre de clase está el contenido de tu publicación.
Tengo un tema hijo que he editado una y otra vez, así que el mío no era el predeterminado, “entry-content”. Sospecho que el nombre de tu clase también es diferente.
Mucha suerte,
Roselle
Salud Casera
¿Cuáles son los pasos a seguir con Firebug para averiguar el nombre de la clase de la publicación?
Gabriel
Hola,
Muchas gracias por este gran artículo, pero tengo un problema. Me gustaría obtener el permalink y no el enlace acortado. ¿Alguien puede decirme cómo puedo hacerlo?
Saludos
Personal editorial
Reemplaza
echo wp_get_shortlink(get_the_ID());conthe_permalink();Administrador
Gretchen Louise
¿Hay alguna forma fácil de que funcione también en páginas individuales?
Personal editorial
Sí. Cambia la línea 2 del código de:
if (is_single()) a if (is_singular())
Administrador
Gretchen Louise
¡Gracias! Eso funciona, excepto que no obtiene un enlace para las páginas… solo para las publicaciones.
Personal editorial
Eso es raro. get_the_id debería funcionar tanto para páginas como para publicaciones.
Gretchen Louise
Lo tengo funcionando en KindredGrace . com pero no obtiene el id para las páginas, solo para las publicaciones.
Personal editorial
Intenta agregar la variable global. Porque get_the_id funciona para publicaciones y las páginas también son un "tipo de publicación".
Gretchen Louise
Lo intenté así y todavía no hay suerte para obtener el enlace corto para las páginas:
// Agregar texto de derechos de autor
function add_copyright_text() {
global $post; { ?>
Brian York
Este cambio funcionó para mí. Sin embargo, verifica que tu contenido esté bajo 'entry-content' de lo contrario, cámbialo (F12 en Chrome). ¡Gracias WPBeginner!
Brian York
En realidad, esto no funciona del todo bien. No funciona en IE en absoluto y, sin importar lo que haga, no copia la parte HTML, sino que siempre la convierte en texto plano, por lo que nunca se convertiría en un enlace.
alan
Tengo el mismo problema, elimina todo el formato, ¿alguien sabe una solución para esto?
VIVROCKS
Gran truco. También hay un plugin para esto: http://wordpress.org/extend/plugins/read-more-copy-link/
Collin Weeks
¡Me encanta tu sitio web! Gracias por tomarte el tiempo de compartir con todos.
Mairaj Pirzada
Buen post, ¡pero a mí siempre me confunden los códigos!
Helder
No funciona, ni siquiera con el contenido de wpbeginner.com
Personal editorial
Quitamos el código de nuestro sitio web. Algunos usuarios se quejaron de que les resultaba molesto.
Administrador
Rafiul Islam
WOW… ¡Muchísimas gracias por compartirlo! Estoy sufriendo por esto...
Gracias de nuevo.
Lorenzo Solís
¿Alguien sabe cómo hacer para que no se muestre el "Enlace Leer más" cuando se copia el título de la publicación?
¡Gracias!
Personal editorial
Sí, es posible. Cambia la etiqueta del selector de `body` a un ID de div o algo así. He enviado la solicitud. Nuestros desarrolladores me informarán para que pueda actualizar el artículo.
Administrador
Lorenzo Solís
Gracias. Acabo de intentarlo con `var div = document.getElementById(‘copyright’);` en la línea número 6 y agregando `id="copyright"` al contenido del div, pero obtengo el mismo resultado que con tu código. Lo siento, no soy programador.
Personal editorial
Revisa el código ahora. Debería funcionar.
Paul
Gracias, esto parece interesante, lo probaré pronto.
Lisa
También funcionó bien en un correo nuevo compuesto desde Outlook, así que diría que es un problema de Gmail. ¡Gracias!
Personal editorial
Lo acabo de probar con Gmail... Aquí funciona bien.
Administrador
Lisa
Interesante y útil; sin embargo, me sorprendió que la prueba de copia no funcionara (al menos para mí) al componer un correo en Gmail — no apareció nada después de pegar el texto copiado, y el área de texto del cuerpo en la ventana de redacción de correos se congeló. Probar una parte copiada en el Bloc de notas funcionó bien, así que no sé cuál podría ser el problema con Gmail.
¡Gracias por el consejo!
Albert Albs
Esa es una buena opción, Syed. Gracias por compartir. Pero si pudiéramos imprimir la URL corta de la publicación, eso sería aún mejor para los propietarios de sitios web.
Actualmente está imprimiendo la URL larga. Si llegué aquí a través de la suscripción al boletín de Feedburner, también viene la URL de seguimiento UTM.
Espero que entiendas. ¿Es posible?
Personal editorial
Ajá. Buena sugerencia. Lo anoto en la lista de cosas por hacer para WPBeginner.
Edit: Just updated the code
Administrador
Albert Albs
Eso es rápido e inteligente.
Una pregunta: ¿Por qué eliminaste la URL del autor en el formulario de comentarios? Siempre he visto que muchos blogs con WordPress dan crédito al autor del comentario en el campo de URL con el atributo NoFollow.
¿Hay alguna razón específica para eliminar el campo de URI del autor? ¿O hay algún experimento para la actualización Penguin?
Entre, no estoy recibiendo ninguna notificación de comentarios, incluso después de seleccionar la opción “Notifícame los comentarios de seguimiento por correo electrónico”.
Gabe Diaz
¡Wow, ahora este es un gran consejo! Facilita citar y mostrar atribución, además de dejar un enlace para aquellos que escanean y roban contenido. ¡Muy bueno!
Emily Sandford
Muchas gracias por esto. Fue muy fácil de hacer, y algo que me pregunté durante bastante tiempo. ¡Lo aprecio!