PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > CMS教程 > phpcms教程 > 正文

    phpcms v9添加百度自动推送JS代码并解决重复推送问题

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:作为一名站长,大家一定关注自己站点百度的收录,应该都知道百度搜索提供了一段自动推送的js代码,可将任意网页推送到搜索引擎,加快收录。...
    作为一名站长,大家一定关注自己站点百度的收录,应该都知道百度搜索提供了一段自动推送的js代码,可将任意网页推送到搜索引擎,加快收录。如果直接把代码放在网站,推送的js代码会重复提交推送,这样是不是很不好,今天B5教程网分享一篇不重复推送的教程。
    找到
    phpcms\libs\functions\extention.func.php
    添加如下函数

    1. function baidu_check_record($url){       
    2.          if(strpos($url,'.html')){ 
    3.           $baidu_cache = getcache('baidurecord','baidu'); 
    4.           $baidu_cache=unserialize($baidu_cache); 
    5.           $pathurl=str_replace(APP_PATH,'',$url); 
    6.           $array=explode('-',$pathurl); 
    7.            if($array[1] && $array[2] && $baidu_cache[$array[1].'-'.$array[2]] == 1){ 
    8.                return 1; 
    9.            }else
    10.                  $url='http://www.baidu.com/s?wd='.$url
    11.                 $curl=curl_init(); 
    12.                 curl_setopt($curl,CURLOPT_URL,$url); 
    13.                 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
    14.                 curl_setopt($curl, CURLOPT_ENCODING, 'gzip'); 
    15.                 $rsurl=curl_exec($curl); 
    16.                 curl_close($curl); 
    17.                 //如果抓取到的百度结果中不存在【提交网址】这个关键词,则认为该页面已被百度收录 
    18.                 if(!preg_match_all('/提交网址/i',$rsurl,$match1) && preg_match_all('/百度为您找到相关结果/i',$rsurl,$match2)){ 
    19.                    $baidu_cache[$array[1].'-'.$array[2]]=1; 
    20.                    $baidu_cache=serialize($baidu_cache); 
    21.                     setcache('baidurecord',$baidu_cache,'baidu'); 
    22.                     return 1; 
    23.                 } else { 
    24.                     return 0; 
    25.                 } 
    26.                   
    27.            } 
    28.             
    29.           
    30.          } 
    31.        
    32.  
    33. function bdPushData($catid,$id) { 
    34.     if ($_SERVER['HTTPS'] != "on") { 
    35.         $currentUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; 
    36.     } else { 
    37.         $currentUrl = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; 
    38.     } 
    39.     if(!$catid || !$idreturn
    40.     $get_url=go($catid,$id); 
    41.     //判断是否是未收录页面,并且当前页面是否等于正规url地址(get_premalink) 
    42.     if(baidu_check_record($get_url) == 0 && $currentUrl == $get_url) { 
    43.         echo "<script>(function(){ 
    44.             var bp = document.createElement('script'); 
    45.             var curProtocol = window.location.protocol.split(':')[0]; 
    46.             if (curProtocol === 'https') { 
    47.                 bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';         
    48.             } else { 
    49.                 bp.src = 'http://push.zhanzhang.baidu.com/push.js'
    50.             } 
    51.             var s = document.getElementsByTagName('script')[0]; 
    52.             s.parentNode.insertBefore(bp, s); 
    53.             })();</script>"; 
    54.       } 
    55.    } 

    在页面底部加上如下代码:
     

    1. {if $catid && $id
    2. {bdPushData($catid,$id)} 
    3. {/if


    工作原理是文章加载时,会再百度搜索当前文章的url地址,如果百度未收录,查询结果中会匹配到“没有找到该URl。您可以直接访问”或"很抱歉,没有找到与"文字内容。当代码确认页面已经收录时,将会把文章的栏目catid和文章id保存成数组,存储到缓存,方便下次直接获取来判断是否已经推送过了。

    百度自动推送服务对象及原理

    JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。
    安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。

    phpcms v9添加百度自动推送JS代码并解决重复推送问题

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-101-4790-1.html
    相关热词搜索: phpcms 百度推送