企图#1 返回对象
如果我理解正确,那是因为getEntityRecord()
, 成功请求REST API端点后(例如。/wp/v2/categories/<id>
), 返回包含名称和ID等术语属性的术语对象数据。
所以
// Instead of:
el(\'li\', null, wp.data.select(\'core\').getEntityRecord(\'taxonomy\', \'custom_taxonomy\', tag))
// you\'d use: (note the ".name")
el(\'li\', null, wp.data.select(\'core\').getEntityRecord(\'taxonomy\', \'custom_taxonomy\', tag).name)
企图
#2 不会将结果筛选到给定的当前标记ID,并返回分类法中标记的整个列表。
的第三个参数getEntityRecords()
实际上是一个parameters listed here 例如include
用于将结果集限制为特定(术语)ID,因此在;尝试#2 quo;,您可以这样做,将结果限制在给定的术语ID内:
const tag_objects = wp.data.select(\'core\').getEntityRecords(\'taxonomy\', \'custom_taxonomy\', {
include: tag_array
});
然而,应该注意的是,因为
getEntityRecord()
和
getEntityRecords()
如果执行AJAX请求,它们不会立即从服务器返回结果或响应,因此不要期望出现以下情况
const term = getEntityRecord( \'taxonomy\', ... ); console.log( term.name );
(始终)工作,因为
term
可能是
undefined
(或其他)而不是术语对象/数据。
其次,不要将标签/术语作为元素返回save
回调,使用dynamic block 您可以使用一个属性来保存术语ID,然后使用PHP在前端输出HTML?这样,当编辑帖子后更新任何术语时,前端显示的术语数据也将更新,而无需首先编辑帖子(然后更新块输出,即save
输出)。
但这只是一个建议。:)