Selector de idiomas desaparecido en WPML

  • The WP Multilingual Plugin

Selector de idiomas desaparecido en WPML

Realizando unos trabajos para una clienta nos hemos encontrado con un problema muy curioso que a buen seguro no es la última vez que veremos.

Problema

Nuestra clienta utiliza las últimas versiones de la plantilla Flatsome y del plugin para WordPress WPML (The WP Multilingual Plugin) pero, por algún motivo que no hemos podido determinar, el selector de idiomas desaparece en el menú principal al cambiar del idioma español a cualquier otro. El problema puede ser motivado porque alguno de los múltiples plugins que tiene instalados o porque no todo su ecosistema está actualizado a las últimas versiones, pero la cuestión es que en el menú sólo aparecían las banderas del selector de idiomas en el menú español.

Solución

Para forzar a WPML a mostrar el selector de idiomas en todos los menús traducidos hemos creado una pequeña función PHP en el fichero functions.php del tema hijo de Flatsome que ha eliminado de raíz el problema con el que nos hemos encontrado.

Concretamente la función PHP que hemos añadido es la siguiente:

/*
 * Forzando el selector de idiomas
 */
function apg_wpml_hack ( $enlaces, $argumentos ) {
	if ( function_exists( 'icl_get_languages' ) ) {
		global $sitepress;
		
		$idiomas = icl_get_languages( http_build_query( array( 'skip_missing' => 0, 'orderby' => 'custom' ) ) );
		foreach ( $idiomas as $idioma ) {
			$enlace = $idioma['url'];
			if ( ICL_LANGUAGE_CODE != "es" ) {
				$enlaces .=  '

<li class="menu-item menu-item-type-post_type menu-item-object-page bandera"><a href="' . $enlace . '" title="' . $idioma['translated_name'] . '" hreflang = "' . $idioma['language_code'] . '"><img src="' . $idioma['country_flag_url'] . '" alt="' . $idioma['translated_name'] . '" /></a></li>


';
			}	
		}
    }

    return $enlaces;
}
add_filter( 'wp_nav_menu_items', 'apg_wpml_hack', 10, 2 );

Gracias a ella conseguimos que en todos los idiomas distintos al español se añada el selector de idioma en el menú principal.

Esperamos que os resulte útil esta nueva función PHP.

¿Os habéis encontrado con un problema similar? ¿Cómo lo habéis resuelto?

2017-03-27T18:08:37+02:00 miércoles, 14 de diciembre de 2016|Categorías: Art Project Group|Etiquetas: , , , , |Sin comentarios

Deje un comentario

Comparte esto con un amigo