לפני מספר ימים, התבקשתי מלקוח בעל אתר דו לשוני העובד עם התוסף WPML כי בתפריט האתר יופיע רק כפתור השפה שאינה פעילה כרגע, לעומת המצב הדיפולטיבי בו מופיעות כל השפות.
כלומר, מהמצב הזה:
או הזה:
להגיע למצב הזה:
זה הטריק… הוסיפו את הקוד הבא ל functions.php
:
/* Showing only non active language on menu */
add_filter('wp_nav_menu_items', 'new_nav_menu_items', 10, 2);
function new_nav_menu_items($items, $args) {
if (function_exists('icl_get_languages')) {
$languages = icl_get_languages('skip_missing=0');
if(!empty($languages)){
foreach($languages as $l){
if(!$l['active']){
// flag with native name
$items = $items . '<li class="menu-item"><a href="' . $l['url'] . '"><img src="' . $l['country_flag_url'] . '" height="12" alt="' . $l['language_code'] . '" width="18" /> ' . $l['native_name'] . '</a></li>';
}
}
}
}
return $items;
}