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

React Native App与WordPress对接:&符号显示异常问题求助

解决React Native中WordPress产品标题&符号显示为&的问题

这明显是HTML实体双重转义导致的问题——WordPress保存内容时会把&转成&,而API返回时又额外做了一次转义,最终变成了&。网站端的浏览器会自动解析多层HTML实体,所以显示正常,但React Native的Text组件不会自动处理这些编码,因此需要手动干预。

给你两个实用的解决方案,按需选择:

方案1:在React Native端手动解码HTML实体

如果不想改动WordPress端的配置,可以在RN里写一个简单的解码函数,处理标题中的实体字符。因为RN环境没有浏览器的DOM API,所以用正则替换的方式更稳妥:

// 定义解码函数
const decodeHtmlEntities = (str) => {
  if (!str) return '';
  // 先替换&为&,再处理可能残留的&
  return str.replace(/&/g, '&')
            .replace(/&/g, '&');
};

// 渲染时使用
<Text>{decodeHtmlEntities(product.title.rendered)}</Text>

这个函数会把标题里的&#038;和&amp;都替换成正常的&,如果之后还有其他实体显示问题,也可以在函数里追加更多正则替换规则(比如&lt;转<等)。

方案2:在WordPress API端修正输出

如果你有权限修改WordPress的代码,直接从源头解决问题会更彻底。在主题的functions.php文件中添加以下钩子,修改产品API的返回内容:

add_filter('rest_prepare_product', function($response, $post, $request) {
    // 获取产品的原始标题
    $original_title = get_the_title($post->ID);
    // 解码一次HTML实体,避免双重转义
    $fixed_title = html_entity_decode($original_title);
    // 更新API响应中的标题字段
    $response->data['title']['rendered'] = $fixed_title;
    return $response;
}, 10, 3);

这段代码会在WordPress返回产品API数据时,把标题的HTML实体解码一次,这样RN端拿到的就是直接的Small & Big Glass,无需额外处理就能正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 00:23:11