WPML

Enlaces adhesivos de WPML evita que los enlaces entre páginas y entradas se rompan alguna vez, incluso si las páginas se mueven y cambian de nombre.


WordPress hace que sea demasiado fácil cambiar las direcciones de las páginas, lo que provoca que todos los enlaces entrantes se rompan (error 404). A continuación se indican algunas acciones que pueden dar lugar a un error 404:
  • Cambiar la página superior
  • Cambiar el slug
  • Cambiar la estructura de enlaces permanentes del sitio

WPML evita que los cambios en las URL rompan los enlaces entrantes. Cuando usted crea un enlace, WPML lo convierte automáticamente en adhesivo. En lugar de almacenar la URL de esa página (en el momento en que se creó el enlace), almacena el número de la página. Esto nunca puede cambiar, sin importar lo que usted haga.

Luego, cuando se muestra la página, WPML inserta el enlace permanente de la página a la que está enlazando. Cada vez que la URL cambia, todas las páginas que enlazan a ella se actualizan inmediatamente y enlazarán a la dirección correcta.

Las siguientes capturas de pantalla muestran cómo se ven los enlaces internos en la base de datos, una vez que Enlaces adhesivos está activado.

Enlaces convertidos en adhesivos por WPML vistos en el editor de bloques
Enlaces convertidos en adhesivos por WPML vistos en el editor de bloques
Enlaces convertidos en adhesivos por WPML vistos en el editor clásico
Enlaces convertidos en adhesivos por WPML vistos en el editor clásico

Sus usuarios nunca verán estos enlaces «extraños». En su lugar, WPML los reemplazará con los enlaces permanentes actuales al mostrar las páginas.
Una vez que active el módulo de Enlaces adhesivos, podrá controlar qué cadenas maneja. Para hacer esto, vaya a la página WPMLEnlaces adhesivos.
Enlaces adhesivos antes del procesamiento
Enlaces adhesivos antes del procesamiento

De forma predeterminada, WPML convertirá todos los enlaces en el cuerpo de la entrada en enlaces adhesivos. También puede convertir los enlaces en widgets y cadenas en enlaces adhesivos.

WPML le permitirá reemplazar por lotes todos los enlaces normales por enlaces adhesivos. También informará de cualquier enlace roto existente y le ayudará a solucionarlo.

Si ha activado Enlaces adhesivos después de crear algo de contenido, los enlaces en ese contenido existente no se convierten inmediatamente en adhesivos.

La pantalla de administración de Enlaces adhesivos le indica cuánto contenido puede incluir enlaces normales (no adhesivos). WPML puede analizar ese contenido y convertir todos los enlaces en enlaces adhesivos. Haga clic en el botón Analizar para hacerlo.

Siempre puede devolver sus enlaces a enlaces permanentes normales (no adhesivos) haciendo clic en Revertir las URL adhesivas a enlaces permanentes.

Enlazar a páginas en un idioma diferente


A veces, es posible que quiera insertar un enlace a una página que está en otro idioma. Dado que Enlaces adhesivos ajusta los enlaces automáticamente, podría impedirle hacer esto y ajustar el enlace para que apunte al mismo idioma en su lugar.

Para poder añadir enlaces a páginas en otros idiomas, necesita añadir el siguiente filtro al archivo functions.php de su tema.

Permitir enlaces a páginas en otros idiomas
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
    $blacklist[] = 'documentation';
    return $blacklist;
}

En el código anterior, use la matriz $blacklist para especificar todos los slugs de las URL de las páginas en los idiomas originales a las que desea enlazar.

En nuestro ejemplo, queremos enlazar a la versión en inglés de las páginas “Documentation” (slug “documentation”) y “Page Builders” (slug “page-builders”), por lo que usamos las siguientes dos líneas:

Ejemplo de cómo especificar la lista de URL a las que se permite enlazar
$blacklist[] = 'documentation';

$blacklist[] = 'page-builders';

De forma predeterminada, el plugin Enlaces adhesivos no busca enlaces generados por shortcodes.

Si tiene un shortcode en su página que genera un enlace como ”?page_id=XX“, se mostrará a sus usuarios sin convertirse en un enlace permanente.

Para manejar este contenido de shortcodes con Enlaces adhesivos, añada este fragmento a su archivo functions.php:

Manejar enlaces dentro del contenido de shortcodes
if ( class_exists( 'WPML_Sticky_Links' ) ) {
	global $WPML_Sticky_Links;
	add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}

Escrito por Amir · Última actualización 19 de febrero de 2025