WordPress 常用的 REST API接口汇总

wordpress通过代码实现百度主动推送和实时推送

我的网站被百度K站了,我很无语,也很无奈,因为网站都是合法内容,也没抓取别人的文章,然后就被百度K站了,目前通过百度搜索,没有任何我站点的信息
我很无奈了,正规做站都遇到这个问题。看了下百度统计,天天有第三方的来刷费流量,我相信大家的站都会遇到这个问题,我尝试封禁这些费流量,最终结果是无劳。

思来想去,不能就这么放弃了,于是尝试的主动推送百度,最后结果如何,我也左右不了啦,总比等着强,下面将我的方法整理一下。

首先需要去百度的搜索资源平台注册账号,地址为:https://ziyuan.baidu.com/

注册完之后按照要求添加自己的站点,相信这块大家都知道怎么操作,我就不在累絮啦。

重点在”资源提交->普通收录”中,我们使用api接口提交,注意自己token,那是百度分配给你的。

在wordpress的funcions.php中添加代码
function save_post_xxzhuti_baidu($post_id, $post, $update)
{
if($post->post_status != 'publish') return false;
 
$res = check_ispost_baidu($post_id);
if(!empty($res)) return false;
 
$url = get_permalink($post_id);
$api = 'http://data.zz.baidu.com/urls?site=https://www.xxzhuti.com&token=您的token';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $url,
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
 
}
add_action('save_post', 'save_post_xxzhuti_baidu', 10, 3);

WordPress百度快速收录 API 提交代码

百度快速收录功能上线,全面继承百度移动专区天级收录功能,并且百度熊掌号天级提交收录将于 5 月 18 日(即日)暂停使用,当然需要第一时间来帮助大家利用搜索引擎工具来做好网站优化!

将以下代码添加至主题的 functions.php 文件中,将代码中的 API 地址修改替换为你在百度搜索资源平台的快速收录的 API 接口地址即可
//WordPress 百度快速收录 API 提交代码
add_action('save_post', 'fanly_baidu_dailysubmit', 10, 3);
function fanly_baidu_dailysubmit($post_id, $post, $update){
	if($post->post_status != 'publish' || get_post_meta($post_id,'Fanly_Submit',true)=='OK') return;
	$api = 'http://data.zz.baidu.com/urls?site=https://你的域名/&token=你的token&type=daily';//快速收录接口复制过来
	$response = wp_remote_post($api, array(
		'headers' => array('Accept-Encoding'=>'','Content-Type'=>'text/plain'),
		'sslverify' => false,
		'blocking' => false,
		'body' => get_permalink($post_id)
	));
	if ( !is_wp_error( $response ) ) {
		$res = json_decode($response['body'], true);
		if($res['success_daily']==1)update_post_meta($post_id, 'Fanly_Submit', 'OK');// OK 避免重复提交
	} 
}
 
快速收录使用说明

快速收录仅限于提交移动端页面及移动端自适应页面。
快速收录工具可以向百度搜索主动推送资源,缩短爬虫发现网站链接的时间,对于高实效性内容推荐使用快速收录工具,实时向搜索推送资源。
资源不符合移动资源标准,依然会占用配额,请您谨慎选择提交类型。判断站点是否符合移动体验标准。
如果网站已通过HTTPS认证工具验证为HTTPS网站,请确保所提交链接的协议头为HTTPS。

火凤凰资源网小白站长建站教程平台,Ripro主题美化,海量免费的建站资源,包括WordPress模板、Discuz商业模板、Discuz商业插件、PHPWind模板、phpcms模板、帝国cms模板、织梦模板等上万精品模板!同时提供各种建站素材、主题美化包和教程,JS特效、整站程序源码!

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接口就实现啦!
接下来直接访问 https://www.xxzhuti.com/wp-json/xxzhuti/v1/hello,便可以看到会输出 hello xxzhuti.com啦。
获取参数
$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');
}

wordpress 自带接口

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

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

https://i.qsbox.cn/wp-json/wp/v2/posts

与

https://i.qsbox.cn/wp-json/wp/v2/posts?page=1

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

https://i.qsbox.cn/wp-json/wp/v2/posts?page=2

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

(2)设置获取的每页文章数量及分页

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[posts_per_page]=5

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

filter[posts_per_page]与page联合使用:

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[posts_per_page]=5&page=2

(3)获取指定分类的文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[cat]=2

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

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

(4)获取指定标签的文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[tag]=library

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

(5)获取指定分类和有指定标签的文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[cat]=2&filter[tag]=library

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

(6)获取指定日期的文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[year]=2016&filter[monthnum]=03

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

(7)获取指定作者的文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[author_name]=jinyun

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

(8)按关键词搜索文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[s]=金云

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

(9)获取随机文章

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[orderby]=rand

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

(10)获取相关文章

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

按标签获取相关文章:

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[orderby]=rand&filter[tag]=library&filter[posts_per_page]=6

按分类获取相关文章:

https://i.qsbox.cn/wp-json/wp/v2/posts?filter[orderby]=rand&filter[cat]=2&filter[posts_per_page]=6

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

https://i.qsbox.cn/wp-json/wp/v2/posts/189

得到ID为189的文章数据

二、分类和标签
(1)获取所有的分类

https://i.qsbox.cn/wp-json/wp/v2/categories

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

https://i.qsbox.cn/wp-json/wp/v2/categories/2

(3)获取所有的标签

https://i.qsbox.cn/wp-json/wp/v2/tags

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

https://i.qsbox.cn/wp-json/wp/v2/tags/3

三、媒体文件
(1)获取所有的媒体信息

https://i.qsbox.cn/wp-json/wp/v2/media

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

https://i.qsbox.cn/wp-json/wp/v2/media/17

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

https://i.qsbox.cn/wp-json/wp/v2/pages

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

https://i.qsbox.cn/wp-json/wp/v2/pages/289

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

https://i.qsbox.cn/wp-json/wp/v2/types

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

(2)获取指定类型

https://i.qsbox.cn/wp-json/wp/v2/types/post

六、评论
(1)获取所有评论信息

https://i.qsbox.cn/wp-json/wp/v2/comments

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

https://i.qsbox.cn/wp-json/wp/v2/comments/2

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

https://i.qsbox.cn/wp-json/wp/v2/users

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

https://i.qsbox.cn/wp-json/wp/v2/users/1

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

您可能还喜欢...

发表回复