Traducir enlaces en WordPress con WPML

Cuando te encuentras trabajando en un proyecto multiidiomas se puede dar la situación de tener que acceder a páginas internas que estén traducidas en su correspondiente idioma. Para hacer que un site sea multilingüe, uso el plugin WPML, para mi gusto, el mejor y más completo plugin de WordPress para que tu página esté completamente traducida en cualquier idioma.

En esta entrada, me gustaría detallar cómo he resuelto la traducción de enlaces internos dentro de la propia página y a partir del número ID que le corresponde a la entrada, página, categoría o etiqueta. Para ello, WPML te proporciona una función que te devuelve exactamente lo que estamos buscando. Esta función es:

icl_object_id

¿Cómo la usamos? Veámoslo en un ejemplo. Un enlace en HTML dentro de la página podría ser:

<a href="/servicios" title="Servicios">Servicios</a>

Para hacer que este enlace se pueda traducir por completo usando PHP quedaría de la siguiente manera:

<a href="<?php echo get_permalink(icl_object_id(ID, tipo, TRUE)); ?>" title="<?php _e('Título del enlace','nombre-del-tema');?>"><?php _e('Texto del enlace','nombre-del-tema');?></a>

Donde:

  • ID: Es el número de la entrada, página, etiqueta o categoría a la que se quiere enlazar.
  • tipo: Las diferentes opciones son: ‘post’, ‘page’, ‘tag’ o ‘category’.
  • true: WPML devuelve el número ID del elemento original del idioma si la traducción no existe. Usaremos false cuando WPML debe devolver un valor NULL si la traducción no existe.

¡Espero que te haya servido tanto como a mí! No dudes en escribirnos tus experiencias con este plugin y por supuesto, compartir si te ha gustado! 🙂