现在百度和360相继推出了链接自动推送代码,今天刚好在boke112导航看到《优化解决百度自动推送和360自动收录JS重复推送问题》这篇帖子,真的像他说的那样,不管是百度还是360的这个JS工具都算是半产品,都没有考虑到重复推送问题,他的这篇帖子主要解决了WordPress程序重复推送的问题,我在他的基础上做了些修改运用到emlog程序中,测试可用分享给大家。
我是在之前的判断百度是否收录的基础上修改的,方法如下:
1.找到主题的module.php文件,在文件最底部添加如下代码:
- <?php //判断内容页是否百度收录及百度自动推送代码
- function baidu($url){
- $url=’http://www.baidu.com/s?wd=’.$url;
- $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,’没有找到’)){return 1;}else{return 0;}}
- function logurl($id){$url=Url::log($id);
- if(baidu($url)==1){echo “<a rel=\”external nofollow\” title=\”本文已被百度收录\” target=\”_blank\” href=\”http://www.baidu.com/s?wd=$url\”>本文已被百度收录!</a>”;
- }else{echo “<a>本文已提交百度!</a><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);
- })();
- </script>”;}}
- ?>
2.找到文章页面文件echo_log.php,在合适的位置添加以下代码:
- <?php echo logurl($logid);?>
看看实际效果:
1.已收录文章的显示效果,且源码里没有推送代码,避免了重复推送。
2.未收录文章的显示效果,源码里就会有自动推送代码,更快的被收录。