如何通过Postman使用WordPress REST API v2为媒体添加版权元字段?
在WordPress REST API中为媒体添加copyright元字段并通过Postman测试
第一步:注册媒体的copyright元字段
WordPress默认不会把自定义元字段暴露在REST API里,所以得先通过代码注册这个字段,让API能识别并处理它。你可以把下面的代码加到主题的functions.php文件里,或者更稳妥的方式是创建一个简单的自定义插件(避免主题更新后代码丢失):
function register_media_copyright_meta() { register_meta( 'attachment', // 媒体对应的文章类型是attachment 'copyright', array( 'type' => 'string', 'description' => '媒体文件的版权信息', 'single' => true, 'show_in_rest' => true, // 关键配置:让这个元字段在REST API中可见且可编辑 'auth_callback' => function() { // 限制只有具备编辑权限的用户能修改该字段 return current_user_can('edit_posts'); } ) ); } add_action('rest_api_init', 'register_media_copyright_meta');
添加完代码后保存,刷新WordPress后台确保代码生效。
第二步:准备Postman的认证信息
WordPress REST API需要认证才能修改内容,这里推荐用应用密码(WordPress 5.6及以上版本支持),操作起来很简单:
- 登录WP后台,进入「用户」->「个人资料」
- 滚动到「应用密码」区域,输入一个名称(比如
Postman Test),点击「添加应用密码」 - 复制生成的16位密码(注意:这个密码只显示一次,一定要妥善保存)
在Postman里用Basic Auth认证:
- 打开请求的「Authorization」标签,选择「Basic Auth」
- Username填你的WP用户名
- Password填刚才生成的应用密码
第三步:用Postman测试API操作
1. 更新媒体的copyright元字段
- 请求方法:
PUT(用PUT更符合REST更新资源的规范,也可以用POST,但PUT更清晰) - 请求URL:
https://你的站点域名/wp-json/wp/v2/media/[媒体ID](把[媒体ID]换成你要修改的媒体实际ID,比如在WP后台媒体库中点击媒体就能看到ID) - Headers:添加
Content-Type: application/json - Body:选择「raw」->「JSON」,输入以下内容:
{ "meta": { "copyright": "© 2024 你的版权信息,比如某某摄影工作室" } }
点击「Send」,如果返回状态码是200,说明修改成功,返回的数据里会包含更新后的meta字段。
2. 验证元字段是否添加成功
- 请求方法:
GET - 请求URL:
https://你的站点域名/wp-json/wp/v2/media/[媒体ID] - 同样带上Basic Auth认证
- 发送请求后,在返回的JSON数据里找到
meta对象,就能看到copyright字段和你设置的内容了。
常见问题排查
- 返回401 Unauthorized:检查应用密码是否正确,或者当前用户是否有编辑媒体的权限
- 返回的meta里没有copyright字段:确认
register_meta函数中的show_in_rest是否设为true,或者代码是否正确加载(比如主题functions.php有没有保存,插件有没有激活) - 修改后字段没变化:核对请求的媒体ID是否正确,或者尝试用PUT方法代替POST(POST可能会触发创建新媒体而非更新现有媒体)
内容的提问来源于stack exchange,提问作者dodo254
相关产品推荐
相关产品推荐

