Я использую плагин Polylang для этого.Тема только на двух языках, и мне удалось создать панель в разделе администратора для загрузки логотипов отдельно, зарегистрированных в logo_sr и logo_es.
Теперь я хочу добавить переменную в таблицу параметров, которая будетсодержит URL-адрес логотипа, который должен отображаться на основе текущего языка.Вот что я сделал до сих пор:
Для этой цели я зарегистрировал новый параметр logo_spanski_metar и вызвал его с помощью admin_init:
register_setting('spanski-settings-group', 'logo_spanski_metar');
Затем я использовал следующий код дляустановите его значение на основе текущего языка (ЗДЕСЬ ПРОБЛЕМА, КУДА-ТО):
add_filter('logo_spanski_metar','change_logo');
function change_logo($logo) {
$lang = pll_current_language('locale');
switch ($lang) {
case 'sr_RS':
$logo = get_option( 'logo_sr') ;
break;
case 'es_ES':
$logo = get_option( 'logo_es') ;
break;
}
return $logo;
}
Я знаю, что настройки logo_sr и logo_es сохраняются правильно, потому что они работают правильно, когда я делаю это:
<img src="<?php echo get_option('logo_sr') ?>">
Но функция change_logo () не работает, переменная logo_spanski_metar остается пустой.
Спасибо за ваше время.
РЕДАКТИРОВАТЬ: я также знаю, что переключатель должен работать правильно, потому что я повторил функцию pll_current_language ('locale') и возвращает либо sr_RS, либо es_ES.
РЕДАКТИРОВАТЬ 2: Я решил проблему, забыв о третьей переменной и просто поместив переключатель непосредственно в мой заголовок HTML.Я оставляю это открытым, если кто-то может указать, что я делал неправильно.