第一个问题在这里。
我正在尝试使用 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 的编码问题。
我已将与此相关的另一个问题从此处更改为此处
感谢您的聆听!
这是一个很常见的问题。基本上,我们需要解码 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);