WordPress 修改 RESTful API 的请求和响应
像素鱼丸
11-22
249

有两种方法可用于将数据添加到 WordPress REST API 的响应:

  • register_rest_field 可用于向任何 RESTful API 响应添加任意字段,并可用于使用API读取和写入数据。要注册新的 RESTful API 字段,您必须提供自己的回调函数来获取或设置字段的值,并手动为字段指定自己的模式定义。
  • register_meta 用于将现有的自定义元值列入白名单,以便通过REST API进行访问。通过将元字段的show_in_rest参数设置为true,该字段的值将在端点响应中的.meta键上公开,WordPress 将处理设置回调以读取和写入该元键。这比register_rest_field 简单一些。

详细文档:https://developer.wordpress.org/rest-api/extending-the-rest-api/modifying-responses/

register_rest_field

add_action('rest_api_init', function () {
    // ‘post’ 文章类型,也可以是其他文章类型,‘my-my_post_meta’ 是前端提交过来的数据
    register_rest_field('post', 'my_post_meta', array(
        // 把自定义字段数据附加到 Rest API 文章接口返回的 Json 数据里
        'get_callback' => function ($object) {
            $my_post_meta = get_post_meta($object['id'], 'my_post_meta', true);
            return $my_post_meta;
        },
        // 保存数据的回调,获取前端提交过来的数据,然后保存
        'update_callback' => function ($value, $post_object) {
            $post_id = $post_object->ID;
            add_post_meta($post_Id, 'my_post_meta', $value, true) or
                    update_post_meta($post_id, 'my_post_meta', $value);
            return true;
        }
    ));
});

register_meta

register_meta(
  'post',
  'oss_url',
  array(
    'single' => true,
    'type' => 'string',
    'show_in_rest' => true
  )
);

请求数据的格式

###
POST https://dev.rangtuo.com/wp-json/wp/v2/audios/162
content-type: application/json; charset=utf-8
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2OTkwMzAyNDQsImV4cCI6MTY5OTA5MDI0NCwibmJmIjoxNjk5MDMwMjQ0LCJ1c2VyX2lkIjoiMSJ9.uesgf5_cYKGXOyGmEOghsj8TiTX2Kh-npJhdR2R0rbI

{
    "title":"一个测试用的5",
    "content":"这是内容",
    "my_post_meta":"这里是自定义字段的值"
}
收藏
打赏
WordPress RESTful API 路由代码结构
上一篇
WordPress WP_Query() 教程
下一篇

发表评论

注册不是必须的

像素鱼丸
160 文章
2 评论
4 喜欢
最新文章

VooShop 商城主题

主题简介 Vooshop 是一个简单精美的 WordPress 主题,支持自适应、暗黑模式、多语言等功能,可以用于企业、团体、自由职业者或更广泛的主页。 Vooshop:回归 WooCommerce 的纯粹与极速 零冗余代码,零多余功能。一个完全依赖 WooCommerce 原生能力的轻量级主题。 Vooshop 不做 WooCommerce 做不到的事,我们只负责让它跑得更快。 市面上的主题总试 […]

XZhan 主题

主题简介 XZhan 主题(中文名称:小站主题)是一款 WordPress 企业主题,支持自适应、暗黑模式等功能,可快速构建高质量的企业网站。   主题特色 支持白天与暗黑模式 自适应设计,兼容多种主流浏览器 自定义主色调 LOGO扫光动画 自定义SMTP支持 内置SEO功能 文章支持点赞、分享和海报生成 丰富的小工具 侧边栏粘性滚动 简介的主题设置面板 主题设置可导入和备份 多级子菜单 […]

StarFish 配置框架

一个轻量级的 WordPress 选项框架插件,通过配置化的方式,快速为 WordPress 主题或插件生成后台设置页面。 ✨ 特性 🎯 配置驱动 UI:只需定义数组配置,自动生成完整的表单界面 📱 多页面架构:支持多个独立的设置页面 🎨 丰富的字段类型:包含 15+ 种常用字段类型 🔗 字段依赖系统:实现字段间的联动效果 ✅ 数据验证与清理:自动进行安全清理,防止 XSS 攻击 🚀 零依赖:使用 […]

什么是幽灵按钮

“幽灵按钮”(Ghost Button)是一种常见的网页与移动应用 UI 设计模式,指背景透明(或半透明)、仅通过边框(border)和文字(text)定义的按钮,视觉上“若隐若现”,仿佛“幽灵”一般——因此得名。 核心特征: 无填充色(transparent background) 背景完全透明(或与父容器同色),不遮挡背后内容。 清晰的边框(通常 1–2px 实线) 如 border: 2px […]
生成中...
扫描二维码
扫描二维码
确认购买

您确定要购买此资源吗?

微信扫码支付

请使用微信扫描二维码完成支付

订单号:

等待支付...