WPML
$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
Tipo
filter
Versión de WPML
3.2.2

Descripción

Filtra un enlace permanente de WordPress y lo convierte en un enlace permanente específico del idioma según el formato de URL de idioma establecido en la configuración de idiomas de WPML.

Esto significa que cuando «Formato de URL de idioma» está configurado en «Diferentes idiomas en directorios», el enlace permanente se devolverá en el formato http://domain.com/de. Cuando se selecciona «Un dominio diferente por idioma», el enlace permanente se convertirá para incluir el dominio correcto asignado al idioma solicitado.

Argumentos

$permalink
(cadena) (Obligatorio) La URL generada por WordPress que se va a filtrar.
$language_code
(cadena) (Opcional) El idioma al que se convertirá la URL. Acepta un código de 2 letras. Cuando se establece en null, recurre al idioma predeterminado para la página raíz, o al idioma actual en todos los demás casos. El valor predeterminado es null
$full_resolution
(booleano) (Opcional) Activar la conversión completa de las URL codificadas.

Ejemplo de uso

Ejemplo 1

Por ejemplo, si tenemos seleccionada la opción «Diferentes idiomas en directorios», podemos usar el siguiente código:

// will return http://domain.com/de/contact
$wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );	

Ejemplo 2

Tenemos una página http://example.org/hello/ y su traducción http://example.org/fr/bonjour/. Supongamos que llamamos al filtro mientras mostramos la página de inicio http://example.org.

// displays http://example.org/fr/hello/ (wrong)
echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr' ); 

// displays http://example.org/fr/bonjour/ (correct)
echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr', true ); 

Notas importantes sobre el segundo ejemplo:

  • La resolución completa es un proceso pesado, por lo que WPML tiene que persistir las URL resueltas en la base de datos. La primera llamada a wpml_permalink debería aumentar significativamente las consultas a la base de datos y el tiempo de carga. Sin embargo, las llamadas posteriores no deberían sobrecargar el proceso.
  • La persistencia en la base de datos se borra parcialmente cuando se actualizan o eliminan entradas o términos. Y se borra por completo al visitar Configuración -> Enlaces permanentes (esta es una buena opción de solución de problemas en caso de que encuentre algún problema).
  • En caso de que no se pueda resolver la URL, el filtro wpml_permalink devolverá la URL original.

wpml_media_url, wpml_media_id, force_suppress_filters, wpml_get_translated_slug, wpml_home_url, wpml_translate_single_string, wpml_translate_string, wpml_elements_without_translations, wpml_unfiltered_admin_string, wpml_element_link

Los 12 hooks de Recuperar contenido localizado →