腾讯云服务器优惠活动华纳云香港服务器
boke112百科 » Z-Blog » 正文

zblogPHP百度自动推送JS优化,规避重复推送问题

zblogPHP百度自动推送JS优化,规避重复推送问题-第1张-boke112百科(boke112.com)

提出问题

经常光临百度站长平台的站长们都知道,百度推出了一款自动推送 JS 功能,只要将此 JS 放在网站的 header 或者 footer 处,就能够实现自动推送,相比主动推送,使用更方便简单。但是,有没有用户考虑过,如果已经收录的页面又用自动推送代码推送一遍,效果是不是不好呢?下面本站就提供解决方案,避免更多的用户“中坑”!

解决方案

本人针对 Z-BlogPHP 此问题的分析

  • 定义测验百度是否收录的函数,返回值为 true 和 false(如收录则返回 true,否则返回 false);
  • 引入测验百度是否收录的函数,如返回 true 则不添加推送代码,否则安装推送代码;
  • 在footer.php模板中载入函数。

具体实现步骤

1、将“测验百度有无收录的函数”和“引入测验百度是否收录并加载代码的函数” 添加到主题 include.php 的 <?Php 内:

  1. //测验百度有无收录的函数
  2. function baidu_check_recond($pageurl){
  3.     $s = ;
  4.     $url=’http://www.baidu.com/s?wd=’.$pageurl;
  5.     $curl=curl_init();
  6.     curl_setopt($curl,CURLOPT_URL,$url);
  7.     curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
  8.     $rs=curl_exec($curl);
  9.     curl_close($curl);
  10.     if(strpos($rs,’提交网址’) && strpos($rs,’相关结果’)){
  11.         return false; //如果存在提交网址和相关结果字眼,则表明百度未收录,返回false
  12.     } else {
  13.         return true; //否则返回true
  14.     }
  15. }
  16. //引入测验百度是否收录并加载代码的函数
  17. function baidu_get_push($url){
  18.     $check = baidu_check_recond($url);
  19.     if($check==false){
  20.         echo “<script>(function(){
  21.             var bp = document.createElement(‘script’);
  22.             var curProtocol = window.location.protocol.split(‘:’)[0];
  23.             if (curProtocol === ‘https’) {
  24.                 bp.src = ‘https://zz.bdstatic.com/linksubmit/push.js’;        
  25.             } else {
  26.                 bp.src = ‘http://push.zhanzhang.baidu.com/push.js’;
  27.             }
  28.             var s = document.getElementsByTagName(‘script’)[0];
  29.             s.parentNode.insertBefore(bp, s);
  30.             })();
  31.             (function(){
  32.                 var src = (document.location.protocol == ‘http:’) ? ‘http://js.passport.qihucdn.com/11.0.1.js?af9e600e6a4ba6d33cd7f1b088210cf7′:’https://jspassport.ssl.qhimg.com/11.0.1.js?af9e600e6a4ba6d33cd7f1b088210cf7’;
  33.                 document.write(‘<script src=\”‘ + src + ‘\” id=\”sozz\”><\/script>’);
  34.             })();</script>”;
  35.     }
  36. }

2、在 footer.php 模板中载入函数(添加到网站模板的 footer.php 的 </body> 前):

  1. {php}
  2. $url=substr($zbp->host,0,-1) . $zbp->currenturl; //获取当前页url
  3. baidu_get_push($url);
  4. {/php}

好了,已完成,赶紧试试吧,希望能够成功。当然,如果发现代码有错误支持,请及时给予反馈,谢谢!

拓展阅读

赞 (0) 打赏
版权声明:本文为投稿文章,感谢 捷闪站长网 的投稿,版权归原作者所有!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu