term_id, $lang_slug);
if ($translated_term) {
$lang_url = get_term_link($translated_term);
} else {
$lang_url = pll_home_url($lang_slug);
}
} else {
$lang_url = pll_home_url($lang_slug);
}
}
elseif (is_archive()) {
if (is_author()) {
$author = get_queried_object();
if ($author) {
$author_posts_url = get_author_posts_url($author->ID);
$lang_url = str_replace(home_url(), pll_home_url($lang_slug), $author_posts_url);
} else {
$lang_url = pll_home_url($lang_slug);
}
}
elseif (is_date()) {
$current_url = home_url(add_query_arg(array(), $wp->request));
$lang_url = str_replace(home_url(), pll_home_url($lang_slug), $current_url);
}
else {
$lang_url = pll_home_url($lang_slug);
}
}
else {
if (function_exists('pll_home_url')) {
$lang_url = pll_home_url($lang_slug);
}
}
if (empty($lang_url)) {
$lang_url = pll_home_url($lang_slug);
}
$lang_name = '';
if (function_exists('pll_languages_list')) {
$lang_names = pll_languages_list(array('fields' => 'name'));
$lang_slugs = pll_languages_list(array('fields' => 'slug'));
$lang_index = array_search($lang_slug, $lang_slugs);
if ($lang_index !== false && isset($lang_names[$lang_index])) {
$lang_name = $lang_names[$lang_index];
} else {
$lang_name = strtoupper($lang_slug);
}
} else {
$lang_name = strtoupper($lang_slug);
}
// Замена названий языков на кастомные
$custom_lang_names = array(
'Fakel Fitness' => 'Фитнес-центр',
'Fakel Gym' => 'Зал силовых'
);
if (isset($custom_lang_names[$lang_name])) {
$display_name = $custom_lang_names[$lang_name];
} else {
$display_name = $lang_name;
}
echo sprintf(
'
%s',
esc_url($lang_url),
esc_attr($class),
esc_attr($lang_slug),
esc_html($display_name)
);
}
}
?>