Je recherche une variable qui affiche le langage actuellement utilisé du plugin polylang. Quelque chose comme:
if($curlang == "en") {
...
}
La solution était simplement:
if (get_locale() == 'en_GB') {
Pour afficher la langue actuelle, vous pouvez utiliser:
<?php echo $lang=get_bloginfo("language"); ?>
Clair et simple
pll_current_language
Renvoie la langue actuelle
Usage:
pll_current_language( $value );
- $ value => (facultatif) name ou locale ou slug, par défaut slug
retourne soit le plein nom ou les paramètres régionaux WordPress (tout comme la fonction principale de WordPress ‘get_locale’ ou le slug (code à 2 lettres) de la langue actuelle.
Ce plugin est documenté plutôt bien dans https://polylang.wordpress.com/documentation .
La documentation destinée aux développeurs indique la logique suivante comme moyen de générer des URL pour différentes traductions du même message.
<?php while ( have_posts() ) : the_post(); ?>
<ul class='translations'><?php pll_the_languages(array('post_id' =>; $post->ID)); ?></ul>
<?php the_content(); ?>
<?php endwhile; ?>
Si vous voulez plus d'influence sur ce qui est rendu, inspirez la fonction pll_the_languages
et copiez son comportement dans votre propre implémentation de sortie
Comme vous voulez que les boutons changent de langue, cette page: https://polylang.wordpress.com/documentation/frequently-asked-questions/the-language-switcher/ vous donnera les informations requises.
Un exemple d'implémentation:
<ul><?php pll_the_languages();?></ul>
Puis stylisez avec CSS pour créer des boutons, des drapeaux ou tout ce que vous voulez ..__ Il est également possible d’utiliser un widget pour cela, fourni par le plugin
Toutes les fonctions des plugins sont expliquées ici: https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/
Dans ce cas, utilisez:
pll_current_language();
Simple:
if(pll_current_language() == 'en'){
//do your work here
}
J'utilise quelque chose comme ça:
<?php
$lang = get_bloginfo("language");
if ($lang == 'fr-FR') : ?>
<p>Bienvenue!</p>
<?php endif; ?>