Dans WPML, en date de la version 3.3.8, il n’y a pas de possibilités simple pour enlever la langue courante insérée dans un menu.
Pour l’enlever, il faut aller modifier manuellement le fichier
wp-content/plugins/sitepress-multilingual-cms/inc/language-switcher.php
Function get_menu_ls_html
On commente une grande partie du code pour ne laisser que ca:
private function get_menu_ls_html( $args ) { global $sitepress, $wpml_post_translations, $wpml_term_translations; $current_language = $sitepress->get_current_language(); $languages_helper = new WPML_Languages( $wpml_term_translations, $sitepress, $wpml_post_translations ); $languages = $sitepress->get_ls_languages(); $items = ''; /* code enleve, environ 20 lignes */ unset( $languages[ $current_language ] ); $items .= $this->render_ls_sub_items( $languages ); return $items; }
Function render_ls_sub_items
Dans mon cas, le menu est horizontal. Je dois donc forcer la variable
$menu_is_vertical = false;
car le thème utilisé ne tiens pas compte de la variable globale
$sitepress->get_setting( 'icl_lang_sel_orientation' );
ce qui serait préférable de modifier pour rendre le code du plugins moins modifié.
et finalement vers la fin de la function, on remplace cette ligne:
$sub_items = $menu_is_vertical ? $sub_items . '</li>' : '</li>' . $sub_items;
par
$sub_items = $menu_is_vertical ? $sub_items . '</li>' : $sub_items;