Mon CV

Masquer le sélecteur de langue WPML sur WordPress quand une page n’est pas traduite

3 juin 2014

On continue la petite série d’astuces WordPress avec une question particulière sur les sites multilingues.

Sur un projet, j’ai travaillé sur un site multilingue dont certaines pages ou certains billets ne font pas l’objet de traduction (et sont donc présentés dans une seule langue).

La gestion du multilingue sur ce site est assurée par l’excellent module WPML et un sélecteur de langue est présent sur chaque page pour accéder aux alternatives dans les autres langues.

Ma recherche consistait à pouvoir masquer ce menu de sélection de langue si la page ou le billet n’existe que dans une langue. J’ai trouvé la réponse sur les forum de WPML.

Pour réaliser cela, nous allons simple appliquer un display: none sur le sélecteur CSS #lang_sel_list dans le cas où la page n’est pas traduite.

Pour cela, vous pouvez ajouter ces quelques lignes au fichier functions.php situé à la racine de votre thème :

add_action('wp_head', 'wpml_hide_langs');
function wpml_hide_langs() {
 $languages = icl_get_languages('skip_missing=1');
 
 //if it is equal to one, hiding the flags.
 if(count($languages) == 1 ) {
 echo '<style type="text/css" media="screen">#lang_sel_list { display: none; }</style>';
 }
}

ou sinon, vous pouvez installer un petit plugin intégrant cette fonction :

  1. Téléchargez le ZIP de ce plugin
  2. Rendez-vous dans votre back-office WordPress > Extensions > Ajouter
  3. Cliquez sur l’entrée de menu « Envoyer » qui permet d’installer une extension depuis un fichier à uploader
  4. Sélectionnez le fichier ZIP que vous avez téléchargé à l’étape précédente
  5. Uploadez-le
  6. Activez le plugin

Et voilà !

 

Posted in WordpressTags: