我之前主动推送网站地图(sitemap.xml)都是利用的推送软件来推送的。网站一多了之后,操作起来很麻烦,要复制每一个网站的 api 链接进行提交,而且有时候会忘记。所以在网上找到了一个方法来进行自动提交,非常好用。
宝塔有计划任务执行功能,接下来我们就利用这个方法来做一个定时自动推送。
首先在网站根目录建设一个 PHP 文件(可以放在任何目录,只要在计划任务时候填写正确的路径即可)。我这里将这个 PHP 文件命名为:Baidu_push.php
具体代码如下:
<?php$token='http://data.zz.baidu.com/urls?site=www.xxx&token=xxxxx';//去百度获取$xml_string = file_get_contents("http://www.xxx.cn/sitemap.xml");//网站xml地图$xml_string = trim($xml_string);$xml_object = simplexml_load_string($xml_string);$array=[];$i=0;foreach ($xml_object->url as $key=>$value){//默认一次提交100,适合用于泛目录的xml地图(因为刷新一次就随机变),普通的网站的会出现重复提交,慎用,非要用就把$i数值改成2000 百度不允许超过2000if($i===100){break;}$array['aa']= get_object_vars($value);$url.=$array['aa']['loc']."\n";$i++;}$urls=explode("\n",$url);$ch = curl_init();$options = array(CURLOPT_URL => $token,CURLOPT_POST => true,CURLOPT_RETURNTRANSFER => true,CURLOPT_POSTFIELDS => implode("\n", $urls),CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),);curl_setopt_array($ch, $options);$result = curl_exec($ch);echo $result;?><?php $token='http://data.zz.baidu.com/urls?site=www.xxx&token=xxxxx';//去百度获取 $xml_string = file_get_contents("http://www.xxx.cn/sitemap.xml");//网站xml地图 $xml_string = trim($xml_string); $xml_object = simplexml_load_string($xml_string); $array=[]; $i=0; foreach ($xml_object->url as $key=>$value){ //默认一次提交100,适合用于泛目录的xml地图(因为刷新一次就随机变),普通的网站的会出现重复提交,慎用,非要用就把$i数值改成2000 百度不允许超过2000 if($i===100){ break; } $array['aa']= get_object_vars($value); $url.=$array['aa']['loc']."\n"; $i++; } $urls=explode("\n",$url); $ch = curl_init(); $options = array( CURLOPT_URL => $token, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); echo $result; ?><?php $token='http://data.zz.baidu.com/urls?site=www.xxx&token=xxxxx';//去百度获取 $xml_string = file_get_contents("http://www.xxx.cn/sitemap.xml");//网站xml地图 $xml_string = trim($xml_string); $xml_object = simplexml_load_string($xml_string); $array=[]; $i=0; foreach ($xml_object->url as $key=>$value){ //默认一次提交100,适合用于泛目录的xml地图(因为刷新一次就随机变),普通的网站的会出现重复提交,慎用,非要用就把$i数值改成2000 百度不允许超过2000 if($i===100){ break; } $array['aa']= get_object_vars($value); $url.=$array['aa']['loc']."\n"; $i++; } $urls=explode("\n",$url); $ch = curl_init(); $options = array( CURLOPT_URL => $token, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); echo $result; ?>
建立好这个文件后,就可以在计划任务中添加任务了。
如图设置,每日添加计划任务,自动推送
本网站使用的是Typecho,不会自动生成sitemap,这里推荐一款sitemap的生成插件:
[scode type=”share” size=””]点击跳转[/scode]
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容