PbootCMS 结合宝塔面板计划任务自动推送网址到百度
一、功能需求
在运营 PbootCMS 站点时,需自动向百度推送新页面以加快收录。通过宝塔面板计划任务定时执行 PHP 脚本,可实现 “站点更新→自动读取 sitemap.xml→推送新链接到百度” 的自动化流程,无需手动操作。
二、实现步骤
1. 创建自动推送 PHP 文件
在站点根目录(如wwwroot/你的域名/
)新建文件baidu.php
,并添加以下代码:
<?php header('Content-Type:text/html;charset=utf-8'); /** 只需修改这里的两个链接 */ $xml_url = "https://www.adminbuy.cn/sitemap.xml"; // 替换为你站点的sitemap.xml链接 $baidu_api = "http://data.zz.baidu.com/urls?site=https://www.adminbuy.cn&token=123456780"; // 替换为百度站长平台的推送接口 // 读取XML地图内容 $xmldata = file_get_contents($xml_url); $xmlstring = simplexml_load_string($xmldata, 'SimpleXMLElement', LIBXML_NOCDATA); $value_array = json_decode(json_encode($xmlstring), true); $url = []; // 提取XML中的所有链接 for ($i = 0; $i < count($value_array['url']); $i++) { $url[] = $value_array['url'][$i]['loc']; } // 百度推送限制:单次最多推2000条,需分组处理 $url_group = array_chunk($url, 2000); $count = count($url_group); for ($i = 0; $i < $count; $i++) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $baidu_api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $url_group[$i]), CURLOPT_HTTPHEADER => ['Content-Type:text/plain'], ]); $result = curl_exec($ch); curl_close($ch); echo $result; // 输出推送结果(可用于调试) } ?>
2. 替换关键参数(必做)
代码中需修改 2 处核心配置,否则无法生效: