✅Abrir Enlaces Externos Automáticamente en una Nueva Pestaña en WordPress

Si usas Gutenberg en WordPress, seguro que te ha pasado: cada vez que insertas un enlace externo, tienes que hacer clic en el texto del enlace y buscar la opción de «Abrir en una nueva pestaña» y marcarla. Es un poco coñazo, sobre todo si tu post tiene muchos enlaces y quieres que los usuarios no abandonen tu web.

Pero no te preocupes, con un simple snippet de código podemos solucionar este problema automáticamente.

¿Qué Hace Este Código?

El siguiente fragmento de código se encarga de detectar todos los enlaces de una página y comprobar si son externos. Si el dominio del enlace es diferente al de tu web, entonces se configura automáticamente para abrirse en una nueva pestaña.

Código para functions.php

Si quieres que esta función se aplique a todo tu sitio, simplemente copia y pega este código en el archivo functions.php de tu tema hijo o en un plugin de código personalizado como Code Snippets:

function abrir_enlaces_externos_nueva_pestana() {
    ?>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            document.querySelectorAll("a").forEach(function(link) {
                if (link.hostname && link.hostname !== location.hostname) {
                    link.setAttribute("target", "_blank");
                    link.setAttribute("rel", "noopener noreferrer");
                }
            });
        });
    </script>
    <?php
}
add_action('wp_footer', 'abrir_enlaces_externos_nueva_pestana');

Lenguaje del código: PHP (php)

Explicación del Código

  1. document.addEventListener("DOMContentLoaded", function() {...})
    • Se asegura de que el código se ejecute solo cuando la página haya cargado completamente.
  2. document.querySelectorAll("a").forEach(function(link) {...})
    • Selecciona todos los enlaces (<a>) de la página y los recorre uno por uno.
  3. if (link.hostname && link.hostname !== location.hostname) {...}
    • Verifica si el enlace es externo (es decir, si el dominio del enlace es distinto al de la web actual).
  4. link.setAttribute("target", "_blank");
    • Si el enlace es externo, se le agrega el atributo target="_blank", que lo hace abrirse en una pestaña nueva.
  5. link.setAttribute("rel", "noopener noreferrer");
    • Se agregan estos atributos por seguridad y rendimiento, evitando vulnerabilidades como el window.opener.

Conclusión

Este pequeño fragmento de código ahorra tiempo y mejora la experiencia del usuario en tu sitio. Ya no tendrás que marcar manualmente «Abrir en una nueva pestaña» cada vez que agregues un enlace externo en Gutenberg. Todo se hará automáticamente.

Revisa este otro código de productividad que rellena automáticamente los atributos ALT de las imágenes al subirlas. Clic aquí.

Nos vemos en el siguiente tutorial. Un saludo.

5/5 - (2 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    ¿Te ha funcionado este pequeño snippet de código?

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

0%