如何使用WP REST API注册自定义接口WordPress函数register_rest_route?

WordPress为给其它程序提供数据,核心带了一套WP REST API接口,但是我们在应用中难免会出现官方接口满足不了我们需求的情况。为此WordPress也提供了register_rest_route函数用于注册WP REST API接口,方便我们在WP REST API基础上自定义接口。那么如何使用WP REST API注册自定义接口WordPress函数register_rest_route?

register_rest_route( string $namespace, string $route, array $args = array(),bool $override = false )

参数:

$namespace

(string) (Required) /wp-json后的第一个段

$route

(string) (Required) 添加的路由规则

$args

(array) (Optional) 多个端点的处理方法,默认空数组

$override

(bool) (Optional) 如果路径已经存在,是否覆盖它?True重写,false合并(如果存在重复键,则使用更新的重写键)。默认false

注意:这个函数不能在rest_api_init钩子作用前使用!

注册自定义接口

首先打开一个能被WordPress加载的文件,如functions.php或者插件文件,这样其中的代码才会被WordPress执行。

function dmd_rest_register_route()

{

register_rest_route(‘dmd/v1’, ‘postlist/(?P<paged>[\d]+)’, [

‘methods’ => ‘GET’,

‘callback’ => ‘dmd_rest_postlist_callback’,

]);

}

add_action(‘rest_api_init’, ‘dmd_rest_register_route’);

function dmd_rest_postlist_callback($request)

{

$paged = $request->get_param(‘paged’);

return get_postlist($paged);

}

function get_postlist($paged)

{

$args = array(

‘posts_per_page’ => get_option(‘posts_per_page’),

‘ignore_sticky_posts’ => false,

‘paged’ => $paged,

);

$querynr = new WP_Query($args);

$response = array();

while ($querynr->have_posts()): $querynr->the_post();

$post = array(

“PostId” => get_the_ID(),

“title” => get_the_title(),

“category” => get_the_category()[0]->name,

“desc” => get_exc(get_the_ID()),

“date” => get_the_time(‘Y-m-d’),

);

array_push($response, $post);

endwhile;

wp_reset_postdata();

return $response;

}

上面的代码中,我们通过register_rest_route函数注册了一个get请求接口,请求地址域名/wp-json/dmd/v1/postlist/1,其中postlist是路由方法,由它觉得是什么方法处理,后面的1是参数paged,这里写的正则匹配数字,也就是说只能接收数字型的参数。然后请求将交给dmd_rest_postlist_callback函数处理并返回数据给客户端。

在接收请求时,我们可以使用$request这个变量来得到请求参数,具体,自行打印查看,请求示例:

如何使用WP REST API注册自定义接口WordPress函数register_rest_route?

小车博客下载必看

给TA打赏
共{{data.count}}人
人已打赏
WP教程

获取全部WordPress网站文章分页内容方法是什么?

2020-7-15 10:54:28

WP教程

WordPress入门教程学会配置WordPress站点

2020-7-17 9:53:04




重要声明

本站资源来自会员发布以及互联网收集,不代表本站立场,如有侵犯你的权益请联系管理员-车车站内发信联系 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请用户仔细辨认内容的真实性,避免上当受骗!本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请在下载24小时内删除!


如果遇到付费才可观看的文章,建议升级终身VIP。全站所有资源任意下免费看”。本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索