公告:

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

作者:我爱技术网 / 时间:1年前 (2018/12/12) / 分类:WEB应用 / 阅读:1190 / 评论:0

摘要:

本文手艺源自张戈博客(https://zhangge.net/5100.html),但他博客使用的是WordPress版,Z-BlogPHP 部分代码有所不同,本站将其转换为 Z-BlogPHP 版。本文适合使用 Z-BlogPHP 的用户和动手才气强的站长们!

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


提出问题

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

解决方案

自己针对 Z-BlogPHP 此问题的阐发

  • 定义测验百度是否收录的函数,返回值为 true 和 false(如收录则返回 true,否则返回 false);

  • 引入测验百度是否收录的函数,如返回 true 则不增加推送代码,否则安装推送代码;

  • 在footer.php模板中载入函数。

具体实现步骤

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

//测验百度有无收录的函数  function baidu_check_recond($pageurl){      $s = '';      $url='http://www.baidu.com/s?wd='.$pageurl;      $curl=curl_init();      curl_setopt($curl,CURLOPT_URL,$url);      curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);      $rs=curl_exec($curl);      curl_close($curl);      if(strpos($rs,'提交网址') && strpos($rs,'相关结果')){          return false; //如果存在提交网址和相关结果字眼,则表明百度未收录,返回false      } else {          return true; //否则返回true      }  }    //引入测验百度是否收录并加载代码的函数  function baidu_get_push($url){      $check = baidu_check_recond($url);      if($check==false){          echo "<script>(function(){              var bp = document.createElement('script');              var curProtocol = window.location.protocol.split(':')[0];              if (curProtocol === 'https') {                  bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';                      } else {                  bp.src = 'http://push.zhanzhang.baidu.com/push.js';              }              var s = document.getElementsByTagName('script')[0];              s.parentNode.insertBefore(bp, s);              })();              (function(){                  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';                  document.write('<script src=\"' + src + '\" id=\"sozz\"><\/script>');              })();</script>";      }  }

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


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

好了,已完成,连忙试试吧,有望能够胜利。当然,如果发现代码有错误支持,请及时赐与反馈


推荐阅读:

最好的免费版WordPress表单插件Forminator

WordPress如何导入/导出Gutenberg块

超级会员冬季福利,升级或开通超级会员得QQ红钻1个月

  • QQ群
  • 微信公众号