You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用register_meta()通过REST API获取文章元数据时字段为空问题

解决register_meta()设置show_in_rest=true后REST响应meta字段为空的问题

我之前在WordPress开发中也踩过这个坑——WordPress Codex里提到了两种给REST响应添加文章元数据的方法,我当时也认准register_meta()是标准正确的实现方式,结果设置了show_in_rest=true之后,响应里的meta字段还是空的,折腾了好一阵才找到问题所在。

后来多亏Allan Fuller的提醒,才搞懂关键问题:register_meta()的第一个参数$object_type必须填post,而不是你实际使用的具体文章类型(比如自定义文章类型的slug、page这类)。很多人容易在这里犯迷糊,把自定义文章类型的名称填进去,导致元数据无法正确暴露到REST API中。

给你贴个正确的用法示例:

register_meta(
    'post', // 这里必须写'post',不是你的自定义文章类型标识
    'custom_meta_key',
    array(
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
        'sanitize_callback' => 'sanitize_text_field',
        'auth_callback' => function() {
            return current_user_can('edit_posts');
        }
    )
);

这个细节其实在相关文档的评论区也有提到,只是很容易被忽略。只要把$object_type改成post,再搭配好single、type这些必要参数,元数据就能正常出现在REST响应里了。


内容的提问来源于stack exchange,提问作者Aleksandr Epp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:28:21