修复方案
第一步:获取新的百度统计 accessToken
- 登录 百度统计
- 进入 管理 → 数据导出服务(或 管理 → 其他设置 → 数据导出)
- 找到 accessToken,点击生成 / 重置,复制新 token
- 如果页面提示需要开通数据导出服务,按指引开通(免费)
第二步:替换整个函数(带完整错误处理)
打开D:\wwwroot\mylishi.cn\wp-content\themes\rife-free-child\functions.php,找到 bdtj_dashboard_dmd 函数(从 function bdtj_dashboard_dmd() { 到对应的结束 }),整体替换为下面的代码:
function bdtj_dashboard_dmd() {
$body = array('header'=>array(
'userName' => '诺丽王',
'accessToken'=> '在这里粘贴你的新accessToken',
),'body'=>array(
'site_id'=>'18211551',
'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)) );
// 1. 请求失败
if (is_wp_error($result)) {
echo '百度统计请求失败:' . esc_html($result->get_error_message()) . '
';
return;
}
$rst = json_decode($result['body']);
// 2. 返回结构异常(token过期、权限不足等)
if ($rst === null || !isset($rst->body->data[0]->result->items)) {
$error_msg = '未知错误';
if (isset($rst->header->failures[0]->message)) {
$error_msg = $rst->header->failures[0]->message;
} elseif (isset($rst->body->data[0]->result->message)) {
$error_msg = $rst->body->data[0]->result->message;
}
echo '百度统计获取失败:' . esc_html($error_msg) . '
';
echo '请检查 accessToken 是否过期,到百度统计后台重新获取。
';
return;
}
$items = $rst->body->data[0]->result->items;
$yest = isset($items[1][0]) && is_array($items[1][0]) ? $items[1][0] : array();
$nowt = isset($items[1][1]) && is_array($items[1][1]) ? $items[1][1] : array();
echo '日期 浏览量 访客数 IP数';
echo '
';
echo '今日: ';
if (!empty($nowt)) {
foreach ($nowt as $val) {
echo esc_html($val) . ' ';
}
} else {
echo '暂无数据';
}
echo '
';
echo '昨日: ';
if (!empty($yest)) {
foreach ($yest as $val) {
echo esc_html($val) . ' ';
}
} else {
echo '暂无数据';
}
}
第三步:操作顺序
- 先去百度统计后台拿到新的 accessToken
- 把新 token 填到代码里
'在这里粘贴你的新accessToken'的位置 - 用上面的完整函数替换
functions.php里的旧函数 - 保存文件,刷新 WordPress 后台仪表盘








