我正在为此使用Polylang插件。主题仅是双语的,我设法在管理部分中创建了一个面板,用于分别上传已注册到logo_sr和logo_es的徽标。
我现在想在选项表中添加一个变量,其中将包含基于当前语言的徽标URL,该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中解决了该问题。如果有人可以指出我做错了什么,我将保持开放状态。