NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Montrer une liste menu déroulant des langues - WPML
Facile

---- Cet article a été modifié : 19 mai 2022

Dans ce tutoriel, nous allons montrer une liste de langues WMPL dans un menu déroulant. On peut par exemple de façon automatisée, le montrer dans nos menus WordPress, avec un sélecteur menu au choix.

WPML propose donc cette idée en allant dans l’onglet WPML => Langues. Ensuite dirigez-vous vers le bloc sélecteur de langue du menu => Ajouter un nouveau sélecteur.

Menu déroulant de langues WPML dans un menu WordPress

Sélecteur de langues WPML dans un menu WordPress

Menu déroulant de langues WPML dans votre thème - Hors menu

Nous allons donc créer une fonction qui nous permet de faire un lien et un menu déroulant des langues WPML. Le lien montrera la langue courante ou se trouve l’utilisateur, et le menu déroulant montrera la liste des langues WPML disponibles et traduites.

Cette fonction peut se placer là ou vous le souhaitez dans votre thème.

NB : Nos effets Javascript ne sont pas compris dans notre tutoriel. Vous pouvez adopter ce code selon votre propre HTML.Vous pouvez par exemple l’adapter à votre propre menu déroulant.

// Dropdown custom list menu wpml languages
// https://wpml.org/wpml-hook/wpml_active_languages/

function sahal_languages_list() {
    
	// Lien de la langue courante
	$languages = apply_filters( 'wpml_active_languages', NULL, array( 'skip_missing' => 0, 'link_empty_to' => 'https://themespress.ca' ) );
    if( !empty( $languages ) ) {
        foreach( $languages as $language ){
            $native_name = $language['active'] ? ( $language['native_name'] ) : $language['native_name'];
			if( $language['active'] ) {
				echo '<a href="#" class="active language-toggle" data-stelina="stelina-dropdown">';
				echo '<span style="text-transform: none;">';
				echo esc_html( $native_name ) . '';
				echo '</span>';
				echo '</a>';
			}
        }
    }
	
	// Liste déroulante des autres langues WPML
	echo '<ul class="stelina-submenu">';
	if( !empty( $languages ) ) {
        foreach( $languages as $language ){
            $native_name = $language['active'] ? ( $language['native_name'] ) : $language['native_name'];
			if( !$language['active'] ) {
				echo '<li class="switcher-option">';
					echo '<a href="' . esc_url( $language['url'] ) . '">';
					echo esc_html( $native_name ) . '';
					echo '</a>';
				echo '</li>';
			}
        }
    }
	echo '</ul>';
}

Le menu déroulant dans le haut d'un thème

Menu déroulant - Langues WPML

Leave a Reply

Votre adresse e-mail ne sera pas publiée.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>