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

WordPress翻译文件误译CSS类名致主题样式失效求助

问题分析与解决方案

问题根源

核心问题是状态标签(label)被同时用于CSS类名和显示文本,翻译工具把类名也翻译成了目标语言,导致CSS选择器.wpem-tbl-status.Confirmed无法匹配元素,样式失效。另外原WordPress代码存在语法错误:_e()是直接输出内容的函数,不能用echo esc_html()包裹,会导致输出异常。

修复方案

需要将CSS类名和显示文本分离:类名使用不会被翻译的状态slug(固定标识符),显示文本使用翻译后的label。修改后的代码如下:

<td data-title="<?php _e( 'Status', 'wp-event-manager-registrations' ); ?>">
    <?php 
        $status_slug = get_post_status( $registration_id );
        $status_label = $wp_post_statuses[ $status_slug ]->label;
    ?>
    <span class="wpem-tbl-status <?php echo esc_attr( ucfirst( $status_slug ) ); ?>">
        <?php echo esc_html( __( $status_label, 'wp-event-manager-registrations' ) ); ?>
    </span>
</td>

关键改动说明:

  • CSS类名用状态slug:get_post_status( $registration_id )返回固定的状态slug(比如confirmed),不会被翻译;用ucfirst()转成首字母大写(Confirmed)匹配原CSS选择器;esc_attr()确保类名输出安全。
  • 显示文本正确处理翻译:用__()获取翻译后的标签文本(__()返回字符串,而非直接输出的_e()),再用esc_html()包裹输出确保文本安全转义。

修复后效果

前端生成的HTML会符合预期:

<span class="wpem-tbl-status Confirmed">translated_Confirmed</span>

此时CSS样式正常生效,显示文本也保持翻译后的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:52:12