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缓存功能试试,这项功能实际作用并不是特别大,大家要慎用哦。