Muchos de los Temas de WordPress contienen enlaces de sintaxis compleja. Por ejemplo, los enlaces al pie que direccionan hacia "Soporte" (Support) y "Página de contacto" (Contact us) pueden lucir algo así como esto:

<a href="/support/">Support</a> | <a href="/contact-us/">Contact us</a>

Cuando el sitio opera en un entorno multilingüe, esos enlaces deben adaptarse al idioma que se muestra. Tanto el texto del enlace (lo que el visitante ve) como la dirección URL (hacia adonde apunta el enlace) deben cambiar cuando se permuta entre idiomas.

La función icl_link_to_element() de WPML puede generar enlaces personalizados a páginas y debería ser utilizado para ese fin.

Descripción de la función

icl_link_to_element(ID, tipo, texto, argumentos, puntero);

ArgumentoDescripciónObligatorio / opcional
IDEl ID de la entrada, página, etiqueta o categoría a enlazar.Obligatorio
tipoEl tipo de página a enlazar. Puede ser ‘post’, ‘page’, ‘tag’ o ‘category’.Opcional; el valor por defecto es ‘page’
textoEl texto del enlace. Si no se especifica, generará el nombre del elemento en el idioma actual.Opcional; el valor por defecto es el nombre del elemento. Para mantener el valor por defecto, dejar false.
argumentosArgumentos opcionales para el enlace. Cuando se utiliza, debería contener un arreglo PHP.Opcional; valor por defecto sin argumento
punteroPuntero opcional para el enlace.Opcional; el valor por defecto en sin puntero

Ejemplo de utilización

EjemploFinalidadCódigo HTML generado
<?php icl_link_to_element(10); ?>Enlace a la página 10 (página de "Soporte")<a href="/support/">Soporte</a>
<?php icl_link_to_element(10,__(‘Solicitar Ayuda’)); ?>Enlace a la página de Soporte, con un texto alternativo<a href="/support/">Solicitar Ayuda</a>
<?php icl_link_to_element(10,false, array(‘category’=>’products’,’priority’=>’high’); ?>Enlace a la página de Soporte, con dos argumentos<a href="/support/?category=products&amp;priority=high">Soporte</a>
<?php icl_link_to_element(10,false,false,’priority’=>’high’,’faq’); ?>
<?php icl_link_to_element(3,’tag’); ?>Enlace a etiqueta con el ID 3 (nuestra etiqueta de ‘Novedades’)<a href="/tag/news/">Novedades</a>

Cómo opera

Se puede especificar el ID de cualquier página, entrada, etiqueta o categoría en cualquier idioma. WPML verificará que exista una traducción para el idioma actual. Si existe, generará el enlace correspondiente. Si no existe, generará un enlace a la página en el idioma original.

Cuando se especifica el texto del enlace manualmente, es buena idea insertarlo en la llamada a la función gettext __(), de forma tal de mostrar el texto en el idioma correcto. Si no se especifica ningún texto para el enlace (como en el primer ejemplo)), WPML insertará el nombre de esa página.

Una respuesta para “Enlaces de Tema de sintaxis compleja”