Jump to content
IPS Community Suite 简体中文
Sign in to follow this  
ipscn

LearnDash Rest Document

Recommended Posts

本贴是 LearnDash Rest 的开发文档,以插件内的 README.md 为准。

扩展

插件本体已包含了 LearnDash 中 7 种关键文章类型的 Rest 接口,如需扩展,请参照其中一种进行扩展。

过滤

请求索引的形式参数数组的过滤接口:

$index_parameters = array('learndash_rest_index_request_parameters_filter',$index_parameters,$this->postType);

请求索引的实际参数数组的过滤接口:

$args = apply_filters('learndash_rest_index_request_args_filter', $args, $argsRaw, $this->postType);

索引数据返回前的过滤接口

$data = apply_filters('learndash_rest_index_filter', $data, $this->postType, $args);

$data 为数组类型的数据,$this->postType 为当前请求的文章类型, $args 为请求的参数数组;

单个条目的详情数据返回前的过滤接口

$data = apply_filters('learndash_rest_single_filter', $data, $this->postType);

调用

默认以 POST 方法请求数据。

假装服务端域名为 plugin-learndash.com 。

假装要获取course 的索引的数据:

curl -X POST http://plugin-learndash.com/wp-json/cwpapi/course/getIndex

将会获取到返回的course 类型的文章数据。

 

支持的参数的简要说明:

page : 页码,可选,整数, 默认为1;
posts_per_page: 每页的文章数,可选,整数,默认为WordPress 后台->设置->阅读页面设置的“博客页面至多显示”项的值;
author : 作者的ID,可选,整数,默认为空;

可支持的全部参数(需自行扩展)的描述:

		$defaults = [
			'posts_per_page' => 5,
			'offset' => 0,
			/*分类的ID,如有多个,英文半角逗号隔开*/
			'category' => '',
			/*支持 ID , date, modified,rand,comment_count等,默认为date*/
			'orderby' => 'date',
			/*默认为DESC*/
			'order' => 'DESC',
			/*指定包含哪些文章的的文章ID数组*/
			'include' => array(),
			/*指定排除哪些文章的的文章ID数组*/
			'exclude' => array(),
			'meta_key' => '',
			'meta_value' => '',
			'post_type' => $this->postType,
			'post_parent' => '',
			'author' => '',
			'author_name' => '',
			'post_status' => 'publish',
			'suppress_filters' => true,
		];

 

假装要获取ID 为 16 的 course 的详情,请求方法如下:

curl -X POST  -d "id=16" http://plugin-learndash.com/wp-json/cwpapi/course/getSingle

将会获取到返回的数据。

id: 文章的ID,整数,必需;

 

返回数据的数据结构

支持使用上面提到的过滤接口自定义返回数据的结构,默认的数据返回结构请参考具体请求返回的数据。

错误处理

自定义的错误处理返回状态 400, 数据结构示例:

{"code":"rest_posts_not_found","message":"Posts not found.","data":{"status":400}}

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×