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

如何在指定PHP代码中正确放置HTML加粗标签实现"Located:"加粗

解决方法:在WordPress中安全加粗"Located:"文本

你遇到的问题核心是**esc_html__()函数会转义所有HTML字符**——你之前写的<b>会被转换成&lt;b&gt;,所以直接变成文本输出了。下面给你两种安全且有效的解决方案:

方法1:拆分文本与HTML标签(推荐)

把翻译文本和加粗标签分开处理,既保证翻译的纯净性,又避免转义问题。代码如下:

/* translators: used between list items, there is a space after the comma */
$tags_list = get_the_tag_list( '', esc_html__( ', ', 'vogue' ) );
if ( $tags_list ) {
    printf( 
        '<br /><br /><span class="tags-links"><strong>%1$s</strong> %2$s</span>',
        esc_html__( 'Located:', 'vogue' ),
        $tags_list
    ); // WPCS: XSS OK
}
  • 这里用<strong>替代<b>(语义化更强,更符合现代HTML规范),直接写在printf的模板字符串里,不会被转义。
  • esc_html__()只处理"Located:"文本,确保翻译后的内容不会有XSS风险。

方法2:允许翻译字符串包含HTML(需额外安全过滤)

如果你的翻译场景需要让标签和文本一起被翻译(比如某些语言需要调整加粗位置),可以用__()(不转义HTML)配合wp_kses()做安全过滤:

/* translators: %1$s is the tag list. Keep <strong> around "Located:" or adjust as needed for your language */
$tags_list = get_the_tag_list( '', esc_html__( ', ', 'vogue' ) );
if ( $tags_list ) {
    $located_string = sprintf( 
        __( '<strong>Located:</strong> %1$s', 'vogue' ),
        $tags_list
    );
    // 只允许<strong>标签,过滤掉其他危险HTML
    $safe_located_string = wp_kses( $located_string, array( 'strong' => array() ) );
    printf( '<br /><br /><span class="tags-links">%s</span>', $safe_located_string );
}
  • __()不会转义HTML,所以<strong>会保留,但必须用wp_kses()限制允许的标签,防止恶意内容注入。

两种方法都能解决你的问题,优先推荐方法1,因为它更简洁、安全,也更符合WordPress的最佳实践。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:24:50