Попытка добавить функциональность в мою тему WP для переключения логотипов на основе текущего языка-- - PullRequest
0 голосов
/ 01 февраля 2019

Я использую плагин 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.Я оставляю это открытым, если кто-то может указать, что я делал неправильно.

...