Enlaces en wordpress multiidioma con WPML

Para la última página que estoy haciendo me pidieron que esta fuese multiidioma. Al estar haciéndola con WordPress instalé el plugin WPML para crear todo el contenido en diferentes idiomas.

Me surgió un problema entonces, y explico la situación. Desde ciertas páginas se requiere acceder a otras páginas que están en el idioma adecuado. En este caso estos accesos debían hacerse desde el contenido del template de cada página y no desde un menú. Por ejemplo, si tengo una página inicio y desde esta quiero ir a una página hija, contacto,  de una llamada nosotros:

Inicio -> Nosotros / Contacto

En mi caso el menú solo iba a a tener un nivel con lo que a Contacto solo se podría acceder añadiendo un link en el template. Pero no podía poner el texto tal cual ya que la traducción iba a hacerse posteriormente y no se en que idioma. Además el problema no está en el propio texto del enlace, ya que se podría haber solucionado con una llamada a la función para localización de temas:

_e(‘Contacto’, ‘domain’);

El problema es que quería que tanto el texto del enlace como la dirección fuese adecuada al idioma. Para esto WPML tiene una función genial que cambia el enlace de acuerdo al ID del elemento que estás traduciendo y al idioma que vayas a utilizar.

icl_link_to_element(ID, type, text, arguments, anchor);

Donde :

  • ID es el identificador de la página/entrada/etiqueta/categoria a donde quieres ir.
  • Type es el tipo que podrá ser post, page, tag o category
  • Text es el texto que quieres para el enlace, pudiendo usar aqui la función de localización __()
  • Arguments, argumentos opcionales pasados por GET
  • Anchor, no tiene mucho sentido pero puedes poner que en vez de el enlace en cuestión utilice otro a capón

En fin, problema resuelto, WPML se encarga (si tiene la traducción de la página) de traducir los enlaces al idioma adecuado.

+ info: http://wpml.org/documentation/support/creating-multilingual-wordpress-themes/hard-coded-theme-links/

2 opiniones en “Enlaces en wordpress multiidioma con WPML”

Deja un comentario

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