前几天研究了下百度统计的API,为了方便查看网站数据,而不用每次都登录百度统计去看,将百度统计数据加入wordpress仪表盘是个不错的选择,下面一起来看看如何实现,学习本文你需要掌握以下知识点。
- WordPress仪表盘调用站外文章列表实现代码
- 百度统计API简单使用——获取网站概况
- 基本PHP语法
- wordpress内置http请求用法
先看实现效果
最近有人刷我CDN流量,所以数据比较大。只取了一点数据,更多数据自己学了教程添加即可。
代码如下:
复制
//WordPress仪表盘添加百度统计数据显示
//https://www.daimadog.com/6821.html
function dmd_add_dashboard_widgets() {
wp_add_dashboard_widget('custom_help_widget', '百度统计', 'bdtj_dashboard_dmd');
}
add_action('wp_dashboard_setup', 'dmd_add_dashboard_widgets' );
function bdtj_dashboard_dmd() {
$body = array('header'=>array(
'username' => '百度统计账户',
'password' => '百度统计密码',
'token'=>'百度统计token',
'account_type'=>1
),'body'=>array(
'site_id'=>'站点ID',
'start_date'=>date("Y-m-d",strtotime("-1 day")),
'end_date'=>date("Y-m-d"),
'metrics'=>'pv_count,visitor_count,ip_count',
'method'=>'overview/getTimeTrendRpt'
));
$url='https://api.baidu.com/json/tongji/v1/ReportService/getData';//百度商业账号请求地址
$request = new WP_Http;
$result = $request->request( $url, array( 'method' => 'POST', 'body' => json_encode($body)) );
$rst=json_decode($result['body']);
$yest=$rst->body->data[0]->result->items[1][0];
$nowt=$rst->body->data[0]->result->items[1][1];
echo '日期    浏览量    访客数    IP数';
echo '</br>';
echo '今日:    ';
for($i=0;$i<count($nowt);$i++){
echo $nowt[$i];
echo '    ';
}
echo '</br>';
echo '昨日:    ';
for($i=0;$i<count($yest);$i++){
echo $yest[$i];
echo '    ';
}
}实现过于简单,我都不知道说什么了,请求过程前面的教程已经讲过了,这里主要是将请求结果解析出来。其中使用了wordpress自带的http请求类,没有使用curl提交post请求。
没什么讲的,有问题留言。
2023-04-23更新
百度统计升级了接口,请使用下面的代码。
复制
//WordPress仪表盘添加百度统计数据显示
//https://www.daimadog.com/6821.html
function dmd_add_dashboard_widgets() {
wp_add_dashboard_widget('custom_help_widget', '百度统计', 'bdtj_dashboard_dmd');
}
add_action('wp_dashboard_setup', 'dmd_add_dashboard_widgets' );
function bdtj_dashboard_dmd() {
$body = array('header'=>array(
'userName' => '你的百度统计用户名',
'accessToken'=>'百度统计——数据管理——数据api菜单中获得'
),'body'=>array(
'site_id'=>'你的站点id',
'start_date'=>date("Y-m-d",strtotime("-1 day")),
'end_date'=>date("Y-m-d"),
'metrics'=>'pv_count,visitor_count,ip_count',
'method'=>'overview/getTimeTrendRpt'
));
$url='https://api.baidu.com/json/tongji/v1/ReportService/getData';//百度商业账号请求地址
$request = new WP_Http;
$result = $request->request( $url, array( 'method' => 'POST', 'body' => json_encode($body)) );
$rst=json_decode($result['body']);
$yest=$rst->body->data[0]->result->items[1][0];
$nowt=$rst->body->data[0]->result->items[1][1];
echo '日期    浏览量    访客数    IP数';
echo '</br>';
echo '今日:    ';
for($i=0;$i<count($nowt);$i++){
echo $nowt[$i];
echo '    ';
}
echo '</br>';
echo '昨日:    ';
for($i=0;$i<count($yest);$i++){
echo $yest[$i];
echo '    ';
}
}注意:新版的accessToken有效期仅30天,如果需要自动获得accessToken,需要注册百度营销开发者,通过api自动获得。






评论 (7)
日期 浏览量 访客数 IP数
今日:
Warning: count(): Parameter must be an array or an object that implements Countable in for($i=0;$i<count($nowt);$i++){
echo $nowt[$i];
昨日:
Warning: count(): Parameter must be an array or an object that implements Countable in for($i=0;$i<count($yest);$i++){
echo $nowt[$i];
是什么原因呢?