一、功能需求
在運營 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 處核心配置,否則無法生效: