Hacer que las Imágenes se Abran en la Misma Pestaña en WordPress

Por defecto, WordPress permite configurar cómo se comportan las imágenes al hacer clic en ellas. Si tus imágenes se abren en una nueva pestaña o ventana emergente (lightbox), puedes cambiar este comportamiento mediante código para que se abran en la misma pestaña.

Eliminar target=»_blank» de los Enlaces de Imágenes

Para forzar que todos los enlaces de imágenes se abran en la misma pestaña, agrega este código al archivo functions.php de tu tema:

// Eliminar target="_blank" de enlaces de imágenes
function remove_target_blank_images($content) {
    // Buscar enlaces con target="_blank"
    $content = str_replace('target="_blank"', '', $content);
    $content = str_replace("target='_blank'", '', $content);
    return $content;
}
add_filter('the_content', 'remove_target_blank_images');

Desactivar Lightbox por Defecto

Si tu tema incluye un efecto lightbox que abre las imágenes en ventanas emergentes, puedes desactivarlo con este código:

// Desactivar lightbox en imágenes
function disable_image_lightbox($content) {
    // Eliminar atributos rel comunes de lightbox
    $content = preg_replace('/rel="lightbox[^"]*"/', '', $content);
    $content = preg_replace('/data-lightbox[^>]*/', '', $content);
    return $content;
}
add_filter('the_content', 'disable_image_lightbox');

Configurar Enlaces de Imagen Manualmente

Al insertar imágenes en tus posts, asegúrate de configurar correctamente el enlace:

  • Selecciona la imagen en el editor de bloques
  • Haz clic en el icono de enlace en la barra de herramientas
  • Elige «Archivo multimedia» para que el enlace apunte a la imagen completa
  • NO marques la opción «Abrir en una pestaña nueva»

Solución Completa con JavaScript

Para una solución más robusta que afecte a todas las imágenes del sitio, puedes usar este código en functions.php:

// Forzar enlaces de imágenes a abrirse en la misma pestaña
function force_same_tab_images() {
    ?>
    <script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function() {
        // Seleccionar todos los enlaces que contengan imágenes
        var imageLinks = document.querySelectorAll('a img');
        imageLinks.forEach(function(img) {
            var link = img.parentElement;
            if (link.tagName === 'A') {
                link.removeAttribute('target');
                link.setAttribute('target', '_self');
            }
        });
    });
    </script>
    <?php
}
add_action('wp_footer', 'force_same_tab_images');

Recomendaciones

Utiliza siempre un tema hijo para aplicar estos cambios. De esta forma, tus modificaciones no se perderán al actualizar el tema principal. Si usas un plugin de galería o lightbox, verifica su configuración antes de aplicar estos códigos, ya que algunos plugins tienen sus propias opciones para controlar este comportamiento.