在 WordPress 网站中使用 WP REST API 获取 JSON 数据时如何解码 –、“ 等。 一些最新的 android webview 无法解码它。
将此代码添加到您的主题中
functions.php
,它充当中间件,在将实体提供给 API 之前解析实体。
function fix_decode_rest_api($response, $post, $request) {
if (isset($post)) {
$decodedTitle = html_entity_decode($post->post_title);
$response->data['title']['rendered'] = $decodedTitle;
$decodedPostTitle = html_entity_decode($response->data['title']['rendered']);
$response->data['title']['rendered'] = $decodedPostTitle;
}
return $response;
}
add_filter('rest_prepare_post', 'fix_decode_rest_api', 10, 3);
只需解码请求中的字符串,而不是再次调用数据库。您已经在 $response 中拥有了要解码的内容
$response->data['title']['rendered'] = html_entity_decode($response->data['title']['rendered']);
此线程上的答案没有完全解释。基本上,我们需要解码 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);