WordPress多语言站点PHP修改页脚版权失效求助
解决Botiga主题多语言页脚版权文本修改问题
问题排查方向
确认过滤器钩子名正确性
打开Botiga主题的footer.php文件,查找是否存在apply_filters('botiga-credits', $默认文本)的代码,确保钩子名拼写完全一致(注意连字符、大小写)。如果钩子名错误,代码自然无法生效。验证当前语言值的格式
get_bloginfo('language')返回的格式可能因多语言插件不同而变化:- WordPress原生多语言功能返回
en-US、de-DE这类格式 - WPML插件通常用短码标识(如
en、de),需用ICL_LANGUAGE_CODE获取 - Polylang插件则用
pll_current_language()获取短码
可以先临时添加日志代码,确认实际返回值:
add_filter('botiga-credits','socket_per_language'); function socket_per_language(){ // 将当前语言值写入日志,可在wp-content/debug.log查看 error_log( '当前语言标识:' . get_bloginfo('language') ); $currentlang = get_bloginfo('language'); if($currentlang=="en-US") { $output = "your custom text in English"; } elseif($currentlang=="de-DE") { $output = "your custom text in German"; } else { $output = "your custom text in Dutch"; } return $output; }- WordPress原生多语言功能返回
适配多语言插件的修正代码
适配WPML插件
add_filter('botiga-credits','socket_per_language'); function socket_per_language(){ // 优先使用WPML的语言标识 $currentlang = function_exists('ICL_LANGUAGE_CODE') ? ICL_LANGUAGE_CODE : get_bloginfo('language'); switch($currentlang) { case 'en': case 'en-US': $output = "your custom text in English"; break; case 'de': case 'de-DE': $output = "your custom text in German"; break; default: $output = "your custom text in Dutch"; break; } return $output; }
适配Polylang插件
add_filter('botiga-credits','socket_per_language'); function socket_per_language(){ $currentlang = function_exists('pll_current_language') ? pll_current_language() : get_bloginfo('language'); switch($currentlang) { case 'en': case 'en-US': $output = "your custom text in English"; break; case 'de': case 'de-DE': $output = "your custom text in German"; break; default: $output = "your custom text in Dutch"; break; } return $output; }
注意事项
- 代码需添加到当前主题的
functions.php文件末尾,或使用自定义功能插件(避免主题更新导致代码丢失) - 若使用WordPress原生多语言,确保站点设置中语言格式与代码中的判断值一致
内容的提问来源于stack exchange,提问作者sara97
相关产品推荐
相关产品推荐

