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提交数组数据的时候不能用键值对提交。在使用其它语言提交的时候,注意需要发送数组,别发字符串!