wordpress REST API 添加自定义端点

参考文章:https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

 

划重点

 

要通过API提供此功能,我们需要注册路由。这告诉API使用我们的函数响应给定的请求。我们通过一个名为call的函数执行此操作,该函数register_rest_route应在回调函数中调用,rest_api_init以避免在未加载API时执行额外的工作。

我们需要传递三件事register_rest_route:命名空间,我们想要的路线和选项。我们稍后会回到命名空间,但是现在,让我们选择myplugin/v1。我们将使路由匹配任何内容/author/{id},其中{id}是整数。

1
2
3
4
6
7
<?php
add_action( 'rest_api_init', function () {
  register_rest_route( 'myplugin/v1', '/author/(?P<id>\d+)', array(
    'methods' => 'GET',
    'callback' => 'my_awesome_func',
  ) );
} );

现在,我们只注册路线的一个端点。术语“路由”指的是URL,而“端点”指的是它背后的函数,它对应于方法 URL(有关更多信息,请参阅词汇表)。

例如,如果您的站点域名是,example.com并且您保留了API路径wp-json,那么完整的URL就是http://example.com/wp-json/myplugin/v1/author/(?P\d+)

每个路由可以包含任意数量的端点,对于每个端点,您可以定义允许的HTTP方法,用于响应请求的回调函数和用于创建自定义权限的权限回调。此外,您可以在请求中定义允许的字段,并为每个字段指定默认值,清理回调,验证回调以及是否需要该字段。