Wordpress“标题”到自定义 JSON 的编码问题

问题描述 投票:0回答:1

第一个问题在这里。

我正在尝试使用 register_rest_route() 和一些 CPT (使用 CPT-UI 插件)在 Wordpress 中创建自定义 API。但一些奇怪的事情正在发生..

在帖子标题(WP 编辑器)中,如果我输入“-”(连字符),它会在 JSON 中显示

—
(长划线)。 如果我检查 WP 帖子的源代码,它会显示
–
(破折号)。

示例..

WP 编辑器中的标题:“Card nº 1 - PT”[hiphen] JSON 响应:

Card nº 1 — PT
[假设编码的 m-破折号不是连字符]

但是如果我把它改成..

WP 编辑器中的标题:“卡号 1 _ PT”[下划线] JSON 响应:“卡号 1 _ PT”[Ok]

这似乎是 En-dash 的编码问题。

我已将与此相关的另一个问题从此处更改为此处

感谢您的聆听!

json wordpress encoding wordpress-rest-api wordpress-gutenberg
1个回答
0
投票

这是一个很常见的问题。基本上,我们需要解码 HTML 并直接将其解析为 JSON。您可以在子主题的functions.php文件中添加以下内容:

function fix_decode_rest_api($response, $post, $request) {
 if (isset($response->data[ 'title' ][ 'rendered' ])) {
    $decodedTitle = html_entity_decode($response->data[ 'title' ][ 'rendered' ]);
    $response->data[ 'title' ][ 'rendered' ] = $decodedTitle;
 }
 return $response;
}
add_filter('rest_prepare_post', 'fix_decode_rest_api', 11, 3);
© www.soinside.com 2019 - 2024. All rights reserved.