Zrovna tvořím webové stránky pro jednu světovou organizaci, kde bylo potřeba udělat multijazyčný web. Požadavky byly takové, že na desktopu se měl language switcher pro přepínání jazyků zobrazovat jinak, než v mobilním menu. No a jelikož mám pocit, že v defaultním nastavení WPML lze zvolit jen jeden vzhled, tak nezbývalo nic jiného, než si to vytvořit pomocí vlastního kódu.
Ke kódu níže ještě upozorním, že pakliže stránka nemá vytvořený překlad, tak se po kliknutí na daný jazyk návštěvník dostane na hlavní stránku daného jazyka. Je tam trochu změna od defaultního nastavení, když využijete (například v Bricks) prvek Language switcher, kde pokud stránka překlad nemá, tak se ani nezobrazí switcher pro možnost přepunutí do daného jazyka.
<?php
// Získání dostupných jazyků
$languages = apply_filters('wpml_active_languages', null, ['skip_missing' => 0]);
if (!empty($languages)) : ?>
<div class="ap-language-switcher">
<?php foreach ($languages as $lang) : ?>
<a href="<?php echo esc_url($lang['url']); ?>" class="language-flag">
<img
src="<?php echo esc_url($lang['country_flag_url']); ?>"
alt="<?php echo esc_attr($lang['native_name']); ?>"
width="32" height="32"
/>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
Z
Leave a Reply