Warning: Trying to access array offset on false in /www/wwwroot/www.issem.cn/wp-content/advanced-cache.php on line 480

Warning: Trying to access array offset on false in /www/wwwroot/www.issem.cn/wp-content/advanced-cache.php on line 480
WordPress Rest API发布文章并设置postmeta字段信息 - 楚莺营销
Warning: Undefined variable $email in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 793

Warning: Undefined variable $email in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 794

Warning: Undefined variable $post in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 838

Warning: Attempt to read property "post_author" on null in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 838

Warning: Undefined variable $post in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 838

Warning: Attempt to read property "post_author" on null in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 838

Warning: Undefined variable $post in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 838

Warning: Attempt to read property "post_author" on null in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 838
首页新闻中心 新闻新闻 WordPress Rest API发布文章并设置postmeta字段信息

WordPress Rest API发布文章并设置postmeta字段信息

浏览:2

重要:本文最后更新于2020-03-30 08:30:42,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

如何使用WordPress Rest API发布文章并设置postmeta字段信息?要使用WordPress Rest API发布文章必须先鉴权,具体过程请参考JWT Authentication插件为WordPress REST API验证用户权限。WordPress Rest API接收的文章字段仅包含posts数据表,不包含postmeta数据表,所以要保存postmeta信息,必须添加自定义回调函数处理。

WP REST API

WP REST API

WordPress Rest API发布文章

WordPress Rest API发布文章的接口比较简单,这里简单介绍下发布文章过程。

请求地址:域名/wp-json/wp/v2/posts

请求参数:

  • title(文章标题)
  • content(文章内容)
  • 其它参数

返回值:成功返回文章信息,失败返回提示信息。

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_callbackupdate_callback的区别我就不解释了,看过wp rest api的都清楚。通过rest_api_init钩子挂载了一个匿名函数,定义了接收到请求后的数据处理方式。

postman提交测试

WordPress Rest API发布文章并设置postmeta字段信息

WordPress Rest API发布文章并设置postmeta字段信息

WordPress Rest API发布文章并设置postmeta字段信息

WordPress Rest API发布文章并设置postmeta字段信息

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

热门文章:


    Warning: Undefined variable $category_id in /www/wwwroot/www.issem.cn/wp-content/themes/issem/html/single.html on line 166

Fatal error: Uncaught Error: Call to undefined function mb_strtolower() in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php:1254 Stack trace: #0 [internal function]: wp_compress_html_main() #1 /www/wwwroot/www.issem.cn/wp-includes/functions.php(5373): ob_end_flush() #2 /www/wwwroot/www.issem.cn/wp-includes/class-wp-hook.php(324): wp_ob_end_flush_all() #3 /www/wwwroot/www.issem.cn/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #4 /www/wwwroot/www.issem.cn/wp-includes/plugin.php(517): WP_Hook->do_action() #5 /www/wwwroot/www.issem.cn/wp-includes/load.php(1260): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /www/wwwroot/www.issem.cn/wp-content/themes/issem/functions.php on line 1254