You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何隐藏Flatsome主题WPML语言切换器的语言名称仅显示旗帜?

解决Flatsome主题下WPML语言切换器仅显示旗帜的问题

方法1:重写主题函数实现

WPML提到的engage_header_langs()是Flatsome主题负责渲染头部语言切换器的自定义函数,你可以通过子主题的functions.php重写该函数,移除语言名称输出:

  1. 确保你正在使用Flatsome子主题(避免主题更新丢失修改,没有子主题请先创建)
  2. 打开子主题目录下的functions.php,添加以下代码:
function engage_header_langs() {
    if ( function_exists( 'icl_get_languages' ) ) {
        $languages = icl_get_languages( 'skip_missing=0&orderby=code' );
        if ( ! empty( $languages ) ) {
            echo '<ul class="header-langs">';
            foreach ( $languages as $l ) {
                echo '<li>';
                // 仅保留旗帜图标,移除语言名称代码
                if ( ! $l['active'] ) {
                    echo '<a href="' . esc_url( $l['url'] ) . '">';
                }
                echo '<img src="' . esc_url( $l['country_flag_url'] ) . '" alt="' . esc_attr( $l['native_name'] ) . '" />';
                if ( ! $l['active'] ) {
                    echo '</a>';
                }
                echo '</li>';
            }
            echo '</ul>';
        }
    }
}

这段代码会覆盖原函数逻辑,只输出旗帜图片,不再显示语言名称。

方法2:用CSS精准隐藏文字

如果不想修改PHP代码,可通过自定义CSS隐藏语言名称:

  1. 进入WordPress后台「外观」→「自定义」→「附加CSS」
  2. 添加以下代码(若初次不生效,用浏览器「检查」工具定位语言名称的具体标签,替换选择器):
/* 隐藏语言切换器的文字内容 */
.header-langs li span.lang-name,
.header-langs li a:not(img) {
    display: none !important;
}
/* 确保旗帜图标正常显示 */
.header-langs li img {
    display: inline-block !important;
    margin: 0;
}

比如你检查到语言名称在<span class="lang-title">标签里,就把选择器改成.header-langs .lang-title { display: none; }

注意事项

  • 禁止直接修改主题核心文件,必须用子主题保存自定义代码
  • 添加CSS后需清除浏览器缓存,确保样式生效
  • 若重写函数后出现异常,删除添加的代码即可恢复原状

内容的提问来源于stack exchange,提问作者MrLoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:45:36