En la entrada anterior veíamos cómo agregar nuestras propias opciones en el personalizador de WordPress. En ésta entrada vamos a ver cómo podríamos organizarlas por idioma en el caso de que estemos desarrollando un tema o plugin multi-idioma.
Vamos a ver con un ejemplo muy básico cómo agregar al personalizador de WordPress una opción para configurar un claim multi-idioma que aparezca en la cabecera de nuestro sitio. El ejemplo lo voy a hacer sobre dos supuestos: que estemos utilizando para el multi-idioma el plugin WPML, ó que estemos utilizando para el multi-idioma el plugin Polylang.
La idea es crear un Panel llamado “Claim”, y dentro del Panel agrupar dinámicamente en Sections todos los idiomas que tengamos dados de alta en nuestro sitio.
Crear opciones multi-idioma en el personalizador de WordPress si utilizas WPML
Si estamos utilizando WPML nos valdremos de la función icl_get_languages() para obtener los idiomas que hemos dado de alta en el sitio. La función devuelve una colección de entradas por idioma. Por ejemplo, para un sitio WordPress que utiliza español e inglés, devolverá:
Crearemos un Panel y a continuación recorreremos el array de idiomas dando de alta una Section para cada idioma. Del mismo modo crearemos el Setting y el Control correspondiente a nuestro claim. Como la idea es hacerlo dinámico, los IDs tanto de las Section, Settings y Controls serán creados con un guión bajo y el código de idioma correspondiente, es decir, “_es” y “_en” para nuestro caso:
Accediendo ahora al back-end de WordPress, y haciendo click en Apariencia => Personalizar podremos ver en el personalizador nuestro Panel “Claim”:

Una vez introducidos nuestros valores, para mostrarlos en el front lo haremos de este modo:
ICL_LANGUAGE_CODE es donde almacena WPML el código del lenguage que hay actualmente establecido en nuestro sitio.
Crear opciones multi-idioma en el personalizador de WordPress si utilizas Polylang
La mecánica es la misma que en el ejemplo anterior. En este caso usaremos la función pll_languages_list() para recuperar el listado de idiomas dados de alta en nuestro sitio, que nos devuelve un array simple:
Por lo tanto, el código que deberemos añadir a nuestro functions.php o a nuestro plugin quedaría del siguiente modo:
Una vez introducidos nuestros valores, para mostrarlos en el front lo haremos de este modo:
La función pll_current_language() de Polylang devuelve el código del lenguage que hay actualmente establecido en nuestro sitio.