wordpress - 将 WordPress REST API 用于 Gutenberg block 时,不会对 HTML 实体进行解码

标签 wordpress rest block html-entities wordpress-gutenberg

我正在构建一个自定义的 Gutenberg 块,它向 WordPress REST API 发出请求以获取一些帖子。我正在使用 axios向 REST 端点发出请求。

结果返回时,有一个 Post 对象数组,我可以看到 Posts 的标题,但它们都包含在 JSON 对象中,如 title.rendered并包含 HTML 实体,例如。

title: {
    rendered: "This has a hyphen – oh dear"
}`

我正在尝试填充 <SelectControl>使用结果数据,因此无法使用 React dangerouslySetInnerHTML解决实体问题的方法。那么在填充选项时如何摆脱这些实体呢?

这是我用来从 REST 响应中填充选项的代码:
const options = response.data.map((post) => {
    return {
        label: post.title.rendered,
        value: post.id,
    };
});

最佳答案

这不是很明显,但实际上 Blocks API 中提供了一种方法来执行此操作。

在块代码的顶部,键入:

const { decodeEntities } = wp.htmlEntities;

然后你可以像这样使用它:
const options = response.data.map((post) => {
    return {
        label: decodeEntities(post.title.rendered),
        value: post.id,
    };
});

火箭筒! HTML 实体消失了。

关于wordpress - 将 WordPress REST API 用于 Gutenberg block 时,不会对 HTML 实体进行解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229126/

相关文章:

php - 从 Wordpress 帖子中删除特色图片。 (新闻动态精简版)

wordpress - 如何 add_image_size 处理较小的图像?

php - 如何使用 PHP 从 MYSQL 检索值到单选按钮?

Eclipse IDE : Line (or mark) between code block start and end like in Notepad++

hadoop - 如何正确设置hadoop block 大小?

php - 媒体查询正在删除社交按钮图标图像

Java Spring : How to use @RequestBody to POST JSON Object

wpf - 上传大型 xml 到 WCF REST 服务 -> 400 错误请求

python - Django:使用模型中的 FileField 将文件上传到 REST API

swift - 如何调用函数内部的 block ,谁在等待自身内部另一个函数的 block 完成?