TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

WordPress, WPML – Переключатель языков только ISO код языка (RU,UK)

1 722

Друзья, перед вами часто мной используемый вариант кода, который позволит Вам отобразить языки переключателя в более приятном виде чем при отображении его по умолчанию. Да и изображения флагов на сайте как по мне выглядят “не очень”, ну а названия языков, дак просто занимают не лишнее место в меню сайта. И так мой вариант кода позволит Вам отображать языки в формате “EN | RU” то есть в ISO формате.

В итоге мы получим вот такой переключатель:

Как сделать свой переключатель WPML

Для применения кода на своем сайте в коде ниже, в данной строке:

Место “top” Вам нужно указать theme_location вашего меню.

Добавить в function.php

// ——————————————————– add_filter( 'wp_nav_menu_items', 'language_selector_special',10,2 ); function language_selector_special( $items,$args ){ $languages = icl_get_languages('skip_missing=0&orderby=code'); $ls_str = NULL; if( !empty($languages) && $args->theme_location == 'top' ){ foreach($languages as $l){ $ls_str .= "<span class='wpml_lang_span a-class-lang-code-{$l['language_code']}'><a href='{$l['url']}' class='wpml_lang_link a-class-lang-code-{$l['language_code']}'>"; $ls_str .= $l['language_code']; $ls_str .= "</a></span>"; $ls_str .= "; } $ls_str = $items . '<li>'.substr($ls_str,0,-2).'</li>'; return $ls_str; } return $items; } // WPML ISO wpml_language_switcher // add_action('header_right_after','iso_list_menu'); /******************************************************* *** WMPL SHORTCODE[wpml_custom_lang_ISO] only ISO **** ******************** START *************************** ******************************************************** HTML: <span class="SDStudio_custom_icons_mobile_block"> <?php echo do_shortcode("[wpml_custom_lang_ISO]"); ?> [wpml_custom_lang_ISO] </span> CSS: Если нужно скрыть активный язык (и разделитель), делаем через CSS: div#SDStudio-wpml-shortcode span.active, span.separator_wpml_lang { display: none; } ********************************************************/ function wpml_shortcode_lang_ISO() { $languages = icl_get_languages('skip_missing=0'); // if( 1 < count( $languages ) ) { if (function_exists('icl_get_languages')) { $languages = icl_get_languages('skip_missing=0&orderby=code&order=desc'); $langs = "; if(!empty($languages)){ foreach($languages as $l){ $class = $l['active'] ? ' class="active"' : "; if ($class) { $langs .= '<span ' . $class . ' id="wpml_lang_span">' . strtoupper ($l['language_code']). '</span>'; } else { $langs .= '<a href="'.$l['url'].'" class="wpml_lang_link">' . strtoupper ($l['language_code']). '</a> <span class="separator_wmpl">|</span> '; } } $langs = substr($langs,0,-3); $langs = '<div class="lang_selector">'.$langs.'</div>'; // echo $langs; } } return $langs; } add_shortcode( 'wpml_custom_lang_ISO', 'wpml_shortcode_lang_ISO' ); /******************************************************* *** WMPL SHORTCODE[wpml_custom_lang_ISO] only ISO **** ******************** END ***************************** ********************************************************/ // ——————————————————-

CSS Стили:

span.a-class-lang-code-ru, span.a-class-lang-code-en { font-family: Oswald !important; font-size: 18px; text-transform: uppercase; margin: 10px 10px 10px 20px; padding: 4px 0px 4px 0px; font-weight: 800; } span.a-class-lang-code-en { display: none; } span.a-class-lang-code-ru { display: none; } @media screen and (max-width: 1530px) { span.a-class-lang-code-ru, span.a-class-lang-code-en { font-family: Oswald !important; font-size: 18px; text-transform: uppercase; margin: 15px 10px 10px 20px; padding: 4px 0px 4px 0px; font-weight: 800; } div#SDStudio_Fixed_Menu span.a-class-lang-code-ru, span.a-class-lang-code-en { font-family: Oswald !important; font-size: 18px; text-transform: uppercase; margin: 3px 10px 10px 20px; padding: 4px 0px 4px 0px; font-weight: 800; } } @media screen and (min-width: 768px) and (max-width:1299px) { div#SDStudio_Fixed a { font-family: Oswald !important; } span.a-class-lang-code-ru, span.a-class-lang-code-en { font-family: Oswald !important; font-size: 18px; text-transform: uppercase; margin: 0px 0px 0px 0px; padding: 16px 0px 4px 0px; font-weight: 800; } } @media screen and (max-width:767px){ span.wpml_lang_span{ display:none; } } /* Фиксированное меню */ @media screen and (min-width: 921px) and (max-width:1299px) { div#SDStudio_Fixed_Menu span.a-class-lang-code-ru, div#SDStudio_Fixed_Menu span.a-class-lang-code-en { font-family: Oswald !important; font-size: 17px; text-transform: uppercase; margin: 3px 10px 10px 20px; padding: 4px 0px 4px 0px; font-weight: 800; } } @media screen and (max-width: 920px){ div#SDStudio_Fixed_Menu span.a-class-lang-code-ru, div#SDStudio_Fixed_Menu span.a-class-lang-code-en { font-family: Oswald !important; font-size: 17px; text-transform: uppercase; margin: 3px 10px 10px 20px !important; padding: 11px 0px 4px 0px; font-weight: 800; } } /* Оформление внешнего вида переключателя для мобильных (в менюхе) */ /* Шрифт сылки */ a.wpml_lang_link.a-class-lang-code-en, a.wpml_lang_link.a-class-lang-code-ru { font-family: Oswald; } .lang_selector { padding-right: 10px; } /* CSS: Если нужно скрыть активный язык (и разделитель), делаем через CSS: */ div.lang_selector span.separator_wmpl, span#wpml_lang_span.active { display: none; } .lang_selector a.wpml_lang_link { font-family: Oswald; font-size: 21px; margin-top: -3px; display: block; font-weight: 500; color: #33445d; }

Источник записи:

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее