This thread is resolved. Here is a description of the problem and solution.
Problem:
The client was trying to add a custom link in the WPML language switcher by following this thread: https://wpml.org/forums/topic/adding-an-external-link-to-language-switcher/ but code was throwing errors.
Solution:
I have fixed this issue by updating language switcher code as follows:
add_filter('wp_nav_menu_items', 'new_nav_menu_items', 10, 2);
function new_nav_menu_items($items, $args) {
// get languages
$languages = apply_filters( 'wpml_active_languages', NULL, 'skip_missing=0' );
// add $args->theme_location == 'primary-menu' in the conditional if we want to specify the menu location.
$dropdown_items = '';
if ( $languages) {
foreach($languages as $language){
if(!$language['active']){
$dropdown_items .= '<li class="menu-item wpml-ls-item wpml-ls-menu-item"><a class="elementor-sub-item" href="' . $language['url'] . '"><img src="' . $language['country_flag_url'] . '" height="12" alt="' . $language['language_code'] . '" width="18" /> <span class="wpml-ls-native" lang="' . $language['language_code'] . '"> ' . $language['native_name'] . '</span></a></li>';
}
else {
$active_language = '<li class="menu-item wpml-ls-item wpml-ls-current-language wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-has-children"><a title="' . $language['native_name'] . '" href="' . $language['url'] . '" class="elementor-item has-submenu"><img class="wpml-ls-flag" src="' . $language['country_flag_url'] . '" alt=""> <span class="wpml-ls-native" lang="' . $language['language_code'] . '"> ' . $language['native_name'] . '</span></a>';
}
}
/* Start - Custom Link */
// Please update flag, name and link
$custom_flag_url = "siteurl/wp-content/plugins/sitepress-multilingual-cms/res/flags/en.png";
$custom_language_name = "Custom Language";
$custom_language_link = "https://google.com";
$dropdown_items .='<li class="menu-item wpml-ls-item wpml-ls-menu-item"><a class="elementor-sub-item" href="' . $custom_language_link . '"><img src="' . $custom_flag_url . '" height="12" alt="" width="18" /> <span class="wpml-ls-native"> ' . $custom_language_name . '</span></a></li>';
/* End - Custom Link */
$final_switcher = $active_language. '<ul class="sub-menu elementor-nav-menu--dropdown sm-nowrap">'.$dropdown_items.'</ul></li>';
}
return $items.$final_switcher;
}
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
This topic contains 2 replies, has 2 voices.
Last updated by 3 years, 11 months ago.
Assisted by: Noman.
