NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.
Publié le : 19 mai 2022 - Modifié le : 1 octobre 2022
Temps de lecture : 2 minutes, 23 seconds - 185 mots
Partager la publication "Montrer une liste menu déroulant des langues – WPML"
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
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>'; }