WordPress : Comment internationaliser l’image d’en-tête ?
J’ai dans le code suivant dans le modèle:
<img src="<?php header_image(); ?>" />
Cependant, je souhaite modifier cette image en fonction de la langue sélectionnée (via le paramètre GET lang).
La question est de savoir comment modifier cette fonction pour rechercher différentes images en fonction du paramètre GET reçu ?
J’ai pensé à:
- Changez ce code sur header.php en un chemin d’image fixe, afin que je puisse mettre un if et choisir entre les images que je veux.
- Remplacez le résultat de la fonction get_header_image() et utilisez-le à la place sur header.php selon le paramètre reçu, en remplaçant en quelque sorte le suffixe de chaîne .png par _en.png ou .png par _es.png.
- Modifiez la fonction header_image() pour qu’elle se comporte comme je le souhaite.
Tous ces moyens me paraissent laids. Existe-t-il de meilleurs moyens?
Solution n°1 trouvée
J’ai utilisé la deuxième approche (je poste ce que j’ai fait car cela peut être utile à quelqu’un):
<img src="<?=
isset($_REQUEST['lang']) ?
(str_replace('.jpg', '_' . $_REQUEST['lang'] . '.jpg', get_header_image()))
: get_header_image()
?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
Solution n°2 trouvée
Filtrez la get_theme_mod()
fonction ( wp-includes/theme.php
) :
add_filter( 'theme_mod_header_image', 'localized_header' );
function localized_header( $img )
{
// Do something awesome with the $img path.
return $img;
}
0 commentaire