0

我为此使用 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 中解决了这个问题。我把这个打开,以防有人能指出我做错了什么。

4

0 回答 0