通过API发布/更新文章的postmeta字段信息

WordPress Rest API保存postmeta

postmeta信息需要我们添加WordPress Rest API扩展程序,因为它没有对postmeta信息的处理办法。下面提供一段保存postmeta信息的代码,放在能被wordpress核心加载的地方就行了,比如主题的functions.php或者插件中,或者任何在引用了wp-load.php文件的地方。

add_action( 'rest_api_init', function() {
// 下面一行的 ‘post’ 文章类型,也可以是其他自定义文章类型;‘metadata’ 就是我们前端提交过来的 metadata 数组
register_rest_field( 'post', 'metadata', array(
// 显示数据时候的回调,我们可以在这个函数里面,把自定义字段数据附加到 Rest API 文章接口返回的 Json 数据里
'get_callback' => function( $object ) {
return get_post_meta($object->ID);//自行修改需要返回的数据,此处是使用获取内容方法返回的内容
},
// 保存数据的回调,这里是保存postmeta信息的地方
'update_callback' => function( $meta, $post ) {
$postId = $post->ID;
foreach ($meta as $data) {
update_post_meta($postId, $data['key'], $data['value']);
}
return true;
},
));
});

get_callback与update_callback的区别我就不解释了,看过wp rest api的都清楚。通过rest_api_init钩子挂载了一个匿名函数,定义了接收到请求后的数据处理方式。

postman提交测试


只需注意postman提交数组数据的时候不能用键值对提交。在使用其它语言提交的时候,注意需要发送数组,别发字符串!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注