wordpress rest api url

程序员遇到百度不出来的bug都是怎么解决的?

肯定是Google了。英文的比中文的更新快。现在看百度出来的,都是抄来抄去,关键是抄的人自己都没经过验证的。一般上stackoverflow。那里一般可以找到答案。

你在用什么工具做知识库?

网上的bug基本都是自己不小心哪里写错了,本机断点一步一步调式。基本可以解决。

WordPress 常用的 REST API接口汇总

大家会问这个api接口有什么用,其实在我们写小程序或者开发APP时,都需要调取接口获取数据的,wordpress与时俱进已经为我们集成了,常用的api接口,我们只需拿来便可以直接使用,这大大
方便了我们的开发成本,下面整理了常用的wordpress api接口,方便使用时直接查找。

一、文章

(1)获取最新文章(默认获取到最新的10篇文章)

?page=1

效果相同,page用于指定页数,WP REST API 默认返回10条数据,用page指定数据获取的游标。如

?page=2

可取回最新的第11条数据到第20条数据,以此类推。

(2)设置获取的每页文章数量及分页
?filter[posts_per_page]=5

filter[posts_per_page]=5 用于指定返回文章每页的数量,这里指定每页数量为5篇。

filter[posts_per_page]与page联合使用:

?filter[posts_per_page]=5&page=2

(3)获取指定分类的文章
?filter[cat]=2

filter[cat]=2 指定分类ID为2 ,返回分类ID为2的文章。

分类ID是每个分类目录在创建时自动生成的ID,在wordpress后台“文章”==》“分类目录”中,把鼠标放在分类名称上面,页面下方会出现一个网址,网址中的参数tag_ID=2就是这个分类名称的分类ID。如果没有出现网址,可以点击分类名称下的“编辑”,然后查看网页地址栏,同样可以得到tag_ID=2。下面的标签ID的获得方法也一样。

(4)获取指定标签的文章
?filter[tag]=library

filter[tag]=library 指定标签名为“library”的文章

(5)获取指定分类和有指定标签的文章
?filter[cat]=2&filter[tag]=library

上面两个结合在一起,可以得到更具体精确的文章。

(6)获取指定日期的文章
?filter[year]=2016&filter[monthnum]=03

filter[year]=2016&filter[monthnum]=03 设置指定的日期

(7)获取指定作者的文章
?filter[author_name]=jinyun

filter[author_name]=jinyun设置指定作者名字

(8)按关键词搜索文章
?filter[s]=金云

filter[s]=金云 :按给定的关键词搜索文章,返回包含“金云”关键词的文章。

(9)获取随机文章
?filter[orderby]=rand

其中orderby还可以为指定的字段排序

(10)获取相关文章
在网站中,在做SEO优化和页面内容布局时,获取相关文章是比较常见的,可以通过以上几个条件组合来达到获取相关文章的效果。

按照标签获取相关文章:

?filter[orderby]=rand&filter[tag]=library&filter[posts_per_page]=6

按分类获取相关文章:

?filter[orderby]=rand&filter[cat]=2&filter[posts_per_page]=6

(11)获取指定文章的数据

得到ID为189的文章数据

二、分类和标签

(1)获取所有的分类

(2)获取指定分类ID的分类信息

(3)获取所有的标签

(4)获取指定标签ID的标签信息

三、媒体文件

(1)获取所有的媒体信息

(2)获取指定媒体ID的媒体信息

四、页面

(1)获取所有的页面信息

(2)获取指定页面ID的页面信息

五、类型

(1)获取当前wordpress所有的内容类型

一般情况下会返回post,page和attachment三种类型

(2)获取指定类型

六、评论

(1)获取所有评论信息

(2)获取指定评论ID的单条评论信息

七、用户

(1)获取所有的用户信息

(2)获取指定用户ID的用户信息

以上即是WordPress REST API 内置API接口最为常用的接口数据获取方法。

自定义接口可以看下一篇:wordpress自定义rest API 接口的开发

wordpress自定义rest API 接口的开发

虽然wordpress提供了很多常用的接口,但是往往我们在开发时自定义接口才是我们需要的,我们需要对接口进行再次加工,开发新的接口,
wordpress很人性地对我们提供了两个函数以实现这方面的需求。

1、rest_api_init 钩子函数,注册接口的相关信息需要挂载到此钩子上
2、register_rest_route 接口路由函数

一个例子

先看一个例子,方便我们更好地理解,这两个函数。

function xxzhuti_rest_hello_callback()

{

return 'hello xxzhuti.com';

}

function xxzhuti_rest_register_route()

{

register_rest_route( 'xxzhuti/v1', 'hello', [

'methods' => 'GET',

'callback' => 'xxzhuti_rest_hello_callback'

] );

}

add_action( 'rest_api_init', 'xxzhuti_rest_register_route');

自定义一个函数 xxzhuti_rest_register_route 将此函数挂载到rest_api_init钩子上,在此函数中用resgister_rest_route注册接口地址需要访问的路由,
自定义访问的方式,并且定义好回调函数 xxzhuti_rest_hello_callback ,在回调函数中写你需要实现的各种功能,这样一个基本的自定义rest api接口就实现了,
接下来直接访问 ,便可以看到会输出 hello xxzhuti.com啦。

请求参数

在回调函数中,添加一个 $request 的参数,它的里面会包含从客户端发送过来的信息。

function xxzhuti_rest_hello_callback($request)

{

$id = $request['id'];

return 'hello xxzhuti.com'.$id;

}

我们可以改造一下上面的路由,添加一些参数

function xxzhuti_rest_register_route()

{

register_rest_route( 'xxzhuti/v1', 'hello/(?P<id>[\d]+)', [

'methods' => 'GET',

'callback' => 'xxzhuti_rest_hello_callback'

] );

}

访问连接: ,这相当于在连接后面传递了一个id的参数,(?P<id>[\d]+) 正则规定了必须是整数。

获取参数

$request['some_param']; //指定参数数组

$request->get_param( 'some_param' ); //指定参数

$request->get_params(); //全部参数数组

$request->get_url_params();

$request->get_query_params();

$request->get_body_params();

$request->get_json_params();

$request->get_default_params();

$request->get_file_params(); 文件参数

数据验证

function xxzhuti_rest_register_route()

{

register_rest_route( 'xxzhuti/v1', 'hello/(?P<id>[\d]+)', [

'methods' => 'GET',

'callback' => 'xxzhuti_rest_hello_callback',

'args' => [

'validate_callback' => 'xxzhuti_rest_validate_id', //验证数据的函数

'sanitize_callback' => 'xxzhuti_rest_check_id' //数据在入库之前进行处理

]

] );

}

function xxzhuti_rest_validate_id($param, $request, $key)

{

if(is_numeric($param)) return true;

}

权限

在写接口的时候,可以检查用户的权限,规定一些接口需要具备何种权限才可以访问

function xxzhuti_rest_register_route()

{

register_rest_route( 'xxzhuti/v1', 'hello/(?P<id>[\d]+)', [

'methods' => 'GET',

'callback' => 'xxzhuti_rest_hello_callback',

'args' => [

'validate_callback' => 'xxzhuti_rest_validate_id', //验证数据的函数

'sanitize_callback' => 'xxzhuti_rest_check_id' //数据在入库之前进行处理

],

'permission_callback' => 'xxzhuti_rest_permission_check' //权限检查

] );

}

function xxzhuti_rest_permission_check()

{

return current_user_can('edit_other_posts');

}

错误信息

使用 WP_Error 返回错误信息

function xxzhuti_rest_hello_callback($request)

{

$id = $request['id'];

if(!$id)

{

return new WP_Error( 'can_not_ID', 'Invalid ID', array( 'status' => 404 ) );

}

return 'hello xxzhuti.com'.$id;

}

入门的WP REST API 可以查看上一篇文章,看懂这两篇文章,基本可以根据自己的博客做出各种接口。

WordPress 常用的 REST API接口汇总

企业网站维护教程:WordPress REST API缓存导致的网站故障及处理

作者:悦然wordpress建站(悦然建站)

(此处已添加小程序,请到今日头条客户端查看)

继续给大家分享企业网站维护教程,今天给大家分享一个因WordPress REST API缓存导致的网站故障及处理方法。WordPress REST API是缓存数据接口,通过它可以提高wordpress网站的打开速度,不过它更多的是应用在APP、小程序当中,比如以wordpress为后端的APP或小程序都可能会用到WordPress REST API。

之前悦然wordpress建站给网站适配的小程序用上了WordPress REST API缓存功能,它可以在一定程度上提高小程序的打开速度,实测之后也确实有了一点提升,但并不明显,这可能与我的小程序本身就不算很慢有关,如果你部署小程序的服务器性能比较弱,那么这项功能可能会更有用一些。

不过当悦然网络工作室启用WordPress REST API缓存时却遇到了问题。如上图所示,当我编辑已经有文章或草稿时就会出现上面的错误提示,没办法编辑,经过排除才发现是WordPress REST API缓存导致的故障。

所以处理方法也很简单,只需要把WordPress REST API缓存关闭就可以了,然后编辑文章或草稿马上就正常了。

之所以会出现这个问题可能是WordPress REST API缓存功能与现在的插件、wordpress建站主题兼容性有关,如果也也遇到了类似的问题,那么可以尝试关闭WordPress REST API缓存功能试试,这项功能实际作用并不是特别大,大家要慎用哦。