小冬SEO

织梦后台自动推送批量推送百度API提交

2019-08-11 5:30:48 2097 织梦二开

对于使用织梦后台的朋友,更新大量或者小量的内容,想要提高自己网站的收录,做好百度站长的链接提交也很重要。这里就分享一则织梦后台自动推送批量推送百度的方法,属于百度资源提交中的API提交,当然这里还是需要感谢dedehtml大佬的分享!

环境要求

  • PHP必须开启了curl扩展

百度主动推送(实时)可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录

织梦程序我们可以在后台添加文档完成那一刻即时主动推送到百度或熊掌,也可以在后台文档列表里批量推送

最终效果

织梦百度API主动推送教程

1、织梦网站后台-系统-基本参数,添加新变量,如果变量值未填写或者为空将不推送

变量名称

cfg_baidu_push

参数说明

百度推送接口

变量值

登录你的百度平台 https://ziyuan.baidu.com 获取接口调用地址

如图,注意你的站点域名要对应上

2、打开 /dede(后台目录)/inc/inc_archives_functions.php 在文件最末尾插入

/**

 * 百度主动推送

 */

function baidu_push($id="",$qstr="")

{

  global $cfg_multi_site,$cfg_basehost,$cfg_baidu_push;

  if(!empty($id) && !empty($cfg_baidu_push))

  {

    if( !empty($id) && empty($qstr) ) $qstr = $id;

    if($qstr=='')

    {

      exit();

    }

    $qstrs = explode('`',$qstr);

    $cfg_domain = $cfg_multi_site == 'N' ? $cfg_basehost : '';

    $urls = array();

    $i = 0;

    foreach($qstrs as $aid)

    {

      $i++;

      $arcrow = GetOneArchive($aid);

      $url = $cfg_domain.$arcrow['arcurl'];

      $urls[] = $url;

      $artlist .= $url."<br />";

    }

    if($i>1) $artlist = "";

    if(!empty($urls)){

      $ch = curl_init();

      $options =  array(

        CURLOPT_URL => trim($cfg_baidu_push),

        CURLOPT_POST => true,

        CURLOPT_RETURNTRANSFER => true,

        CURLOPT_POSTFIELDS => implode("n", $urls),

        CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),

      );

      curl_setopt_array($ch, $options);

      $result = curl_exec($ch);

      curl_close($ch);

      $result = json_decode($result, true);

      if(isset($result['success'])){

        $not_same_site = isset($result['not_same_site'][0]) ? " <font style='color:#f00;'>推送链接与百度绑定站点不一致</font> " : "";

        $not_valid = isset($result['not_valid'][0]) ? " <font style='color:#f00;'>推送链接不合法</font> " : "";

        return $not_same_site . $not_valid . '百度主动推送成功 '.$result['success'].' 条!当天剩余 '.$result['remain'].' 条可推送!'.$artlist;

      }else{

        return '百度主动推送失败,错误码:'.$result['error'].'<a href=https://ziyuan.baidu.com/college/courseinfo?id=267&page=2#h2_article_title12 target=_blank>详情</a>';

      }

    }

    return "没有数据被推送!";

  }

}

3、找到后台文档发布程序PHP文件

  • · 【普通文章】模型的是
  • · /dede/article_add.php
  • · 【图片集】模型的是
  • · /dede/album_add.php
  • · 【软件】模型的是
  • · /dede/soft_add.php
  • · 【商品/自定义模型】模型的是
  • · /dede/archives_add.php

根据你的需要在对应的php文件中找到

//返回成功信息

在它上面加入

if(!empty($cfg_baidu_push))

{

  $backurl .= "<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".baidu_push($arcID)."</p>";

}

继续找到

line-height:36px;height:36px

改成

line-height:36px;

修改完后如图这样

至此,织梦发布文档主动推送到百度功能完成。

织梦后台文档列表添加批量推送至百度

效果如图

批量推送实现教程

在加入批量之前必须完成上面的【织梦百度主动推送教程】第1、第2步,否则以下教程无效

1、打开 /dede/templets/content_list.htm (软件模型和自定义模型是 /dede/templets/content_i_list.htm) 找到

删除属性

这一行,在它下面添加

<a href="javascript:baidu_push(0)" class="coolbg">&nbsp;推送至百度&nbsp;</a>

<script type="text/javascript">

function baidu_push(aid)

{

  var qstr=getCheckboxItem();

  if(aid==0) aid = getOneItem();

  location="archives_do.php?aid="+aid+"&dopost=baidu_push&qstr="+qstr;

}

</script>

如图

2、打开 /dede/archives_do.php 找到末尾一行的

?>

在它上面加入

else if($dopost=='baidu_push')

{

    if( !empty($aid) && empty($qstr) ) $qstr = $aid;

    

    if($qstr=='')

    {

        ShowMsg('参数无效!',$ENV_GOBACK_URL);

        exit();

    }

    require_once(DEDEADMIN.'/inc/inc_archives_functions.php');

    $result = baidu_push($qstr);

    ShowMsg($result,$ENV_GOBACK_URL,0,5000);

    exit();

}

至此织梦后台自动推送、批量推送百度的API提交教程完成。原文:https://www.dedehtml.com/notes/dede-baiduxiong-push.html

版权保护: 本文由小冬SEO编辑发布,转载请保留链接: https://www.cdseoyh.cn/cms/84.html

小冬SEO 草根seoer,从事搜索引擎关键词优化,喜欢学习专研各类SEO优化技巧—小冬SEO博客
  • 138文章总数
  • 2098本页访问
  • 运营时间
  • 标签

    友情链接

      {dede:sql sql="select url,webname from dede_flink where typeid = (select id from dede_flinktype where typename=~typename~)"}
    • [field:webname/]
    • {/dede:sql}