前几天百度公开课说了,api推送的优先级比较高,所以,在没有快速收录的情况下,api提交必须要有,那么织梦要如何实现美国石油学会(美国石油协会)主动推送呢?
具体步骤:
1、保存下面代码,并将文件名改为tuisong.php。
?phprequire _ once( ' include/common。Inc . PHP ');require _ once ' include/arc。零件视图。班级。PHP ';require _ once( ' include/charset。func。PHP ');$ year=date( ' Y ');$ month=date( ' m ');$ day=date( ' d ');$dayBegin=mktime(0,0,0,$月,$日,$年);//当天开始时间戳$dayEnd=mktime(23,59,59,$月,$日,$年);//当天结束时间戳$query='SELECT arch.id,types。来自dede _ arctype的typedir作为类型内部连接dede _ archives作为类型上的arch。id=arch。typeid where发布日期 ' .dayEnd . '和发布日期 ' .$ dayBegin ' //dede_archives dede_arctype如果德德前缀未动可不进行修改,如果修改了,将表头修改为自己的实际表头//echo $ query;$ URLs= ' $ dsql-Execute( ' arch . id,types.typedir ',$ query);while($ row=$ dsql-get array( ' arch。id,类型。typedir '){ $ URLs .='http://www.haogebiji.com ' .str_replace('{cmspath} ',' ',$row['typedir']).'/'.$row[id].'.html ' .',';//将上边域名换成换成你的网址}$urls=substr($urls,0,-1);$urls=explode( ', ',$ URLs);$ API= ' http://数据。ZZ。百度一下。com/URL?site= ';//换成自己的网站主动推送API $ ch=curl _ init();$ options=array(curl opt _ URL=$ API,CURLOPT_POST=true,CURLOPT_RETURNTRANSFER=true,CURLOPT_POSTFIELDS=内爆('\n ',$urls),CURLOPT _ http header=array( ' Content-type : text/plain '),);curl_setopt_array($ch,$ options);$ result=curl _ exec($ ch);echo $ result?
2、上面代码中第12行,大家需要根据自己的实际情况来替换文件中dede _存档以及dede_arctype的前缀,dede默认的数据库前缀为迪迪。
如果不记得自己的数据库前缀,可以打开数据库查看。这个德德就是数据库前缀。
">3、代码中第20行修改成自己的域名。
4、第27行添加主动推送api。
api获取方法:百度站长平台—资源提交—普通收录—资源提交—api提交,就能看到接口调用地址。
5、上传tuisong.php文件。存放在任意目录都可以,为了安全起见,最好不要放在根目录。
打开浏览器,如:http://域名/某目录/tuisong.php,即可开始api推送。
如果显示:当今天有更新文章,则会成功推送链接并返回成功推送提升,如:{“remain”:499998,”success”:2}。其中,”remain”:499998指当天剩余的可推送499998条url,”success”:2指成功推送的2条url。
或显示:其他结果均为未推送成功!请检测修改文件是否正确!如返回错误:{“error”:400,”message”:”empty content”}则表示当天未更新文章或数据库前缀错误导致未获取到链接。
实现定时推送
这个需要借助宝塔,在宝塔中添加定时任务,代替人工浏览,达到自动推送的目的。建议在晚上执行推送任务,避免白天服务器压力过大,影响正常用户访问网站。
第二天记得查看任务列表右侧的【日志】信息,确定是否执行成功。
或者也可以查看【资源提交】-【普通收录】-【数据反馈】中,查看api推送数据。