
Многие пользователи WPML сталкиваются с такой ситуацией когда необходимо добавить переключатель языков в виде только одних флагов (без названия языка) , но шорт код который заявлен разработчиками плагина WPML по каким-то причинам не работает. Для решения данной задачи придет на помощь регистрация шорт кода путем добавления функции WPML в файл function.php темы WordPress. Так что в начале добавляем в function.php данный код:
/************************************************
***WMPL SHORTCODE[wpml_custom_lang] only flag****
*************************************************/
function wpml_shortcode_lang() {
$languages = icl_get_languages('skip_missing=0');
if( 1 < count( $languages ) ) {
$s = "";
foreach( (array)$languages as $language ) {
$s .= '<span class=" menu-item-language"><a href="' . $language['url'] . '"><img src="' . $language['country_flag_url'] . '" alt="" /> </a></span> ';
}
}
return $s;
}
add_shortcode( 'wpml_custom_lang', 'wpml_shortcode_lang' );
А за тем вставляем шорт код:
[wpml_custom_lang]
или php код:
<?php echo do_shortcode("[wpml_custom_lang]"); ?>
в то место где необходим переключатель языков WMPL.
Шорткода WPML переключателя языка формата RU | UK (место флага код страны):
Внешний вид:
Если необходимо вставить переключатель не с флагами а с кодом страны (например что бы отображался переключатель RU UK), тогда в function.php вставьте данный код:
/*******************************************************
*** 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 {
color: #ff000000;
}
div#SDStudio-wpml-shortcode span.active{
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 = '';
echo '<div class="lang_selector">';
if(!empty($languages)){
foreach($languages as $l){
$class = $l['active'] ? ' class="active"' : '';
if ($class) {
$langs .= '<span ' . $class . '>' . strtoupper ($l['language_code']). '</span> | ';
} else {
$langs .= '<a href="'.$l['url'].'">' . strtoupper ($l['language_code']). '</a> | ';
}
}
$langs = substr($langs,0,-3);
// echo $langs;
}
echo '</div>';
}
return $langs;
}
add_shortcode( 'wpml_custom_lang_ISO', 'wpml_shortcode_lang_ISO' );
/*******************************************************
*** WMPL SHORTCODE[wpml_custom_lang_ISO] only ISO ****
******************** END *****************************
********************************************************/
В тело страницы вставляем шорт код:
[wpml_custom_lang_ISO]
Или в php файл темы вставляем:
<?php echo do_shortcode("[wpml_custom_lang_ISO]"); ?>
Добавить в *cactustemplate-partsnavigationnavigation-mobile.php:
<style>
/* Скрываем активный язык для переклбючателя wpml
!!! Универсальные стили*/
@media screen and (max-width:767px){
/* Скрываем иконки в линии меню из меню моб */
.cactus-mobile-drawer-header i.fa.fa-facebook-official,
.cactus-mobile-drawer-header i.fa.fa-share-alt-square,
.cactus-mobile-drawer-header li.menu-item.wpml-ls-item {
display: none;
}
html:lang(ru-RU) #SDStudio-wpml-shortcode > div > ul li:nth-child(1) {
display: none;
}
html:lang(uk-UA) #SDStudio-wpml-shortcode > div > ul li:nth-child(2) {
display: none;
}
}
</style>
<div class="cactus-mobile-main-header">
<div class="cactus-logo">
<?php get_template_part( 'template-parts/header/header', 'logo' ); ?>
</div>
<!-- Переключатель языка START -->
<div id="SDStudio-wpml-shortcode">
<?php echo do_shortcode( '[wpml_language_switcher type="list" flags=1 native=0 translated=0 ]' ); ?>
</div>
<a style="padding-right: 22px;"><span><i class="fa fa-share-alt-square" aria-hidden="true"></i></span></a>
<a target="_blank" href="https://www.facebook.com/ortho.sumy"><span><i class="fa fa-facebook-official" aria-hidden="true"></i></span></a>
<!-- Переключатель языка END -->
<div class="cactus-menu-toggle">
<div class="cactus-toggle-icon">
<span class="cactus-line"></span>
</div>
</div>
</div>
<div class="cactus-mobile-drawer-header" style="display: none;">
Источник записи: https://mediadoma.com