解决办法:zblogPHP百度自动推送避免重复推送方法
优采云 发布时间: 2020-09-04 14:10ZblogPHP百度自动推送避免重复推送的方法
经常访问百度网站管理员平台的网站管理员知道百度已经启动了自动推送JS功能。只要将此JS放置在网站的页眉或页脚中,就可以实现自动推送,与主动Push相比,它更加方便和易于使用。但是,有没有用户考虑过如果使用自动推送代码再次推送收录页面,效果会不好吗?以下网站提供解决方案,以避免更多用户“陷入困境”!
解决方案
我以Z-BlogPHP为例来分析此问题
定义该函数以测试百度是否为收录,返回值为true和false(例如收录返回true,否则返回false);
引入一个测试百度是否为收录的函数,如果返回true,则不添加推送代码,否则安装推送代码;
将功能加载到footer.php模板中。
具体实施步骤
1、在include.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 "(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('');
})();";
}
}
2、将功能加载到footer.php模板中(在网站模板的footer.php之前添加):
{php}
$url=substr($zbp->host,0,-1) . $zbp->currenturl; //获取当前页url
baidu_get_push($url);
{/php}
好的,已经完成,现在就尝试,我希望它能成功。当然,如果您发现代码中有错误,请在下面的回复中指出,谢谢!