织梦dedecms发布文章实时自动推送给百度sitemap功能开
可以说很多织梦的站长都需要这个功能, 记得以前织梦官方推出了一个百度ping插件,但好像后来没什么用了,而且百度的推送规则也改了不少,最近百度站长平台就推出了实时推送原创链接地址给百度,这样肯定比百度蜘蛛通过sitemap抓取连接要好很多了,而且还能确保网站内容的原创性。
今天我们就根据百度站长平台的主动推送接口来写个关于织梦dedecms发布文章实时推送给百度的教程,具体操作步骤如下:
关于织梦的百度实时推送大体上可以有两种方法,大家根据需要来选择下面的两种方案中的一种
第一种方法是手动创建一个文件,我们在根目录下面创建一个dedejs.php,里面的代码如下:
<?php
require_once ("include/common.inc.php");
require_once "include/arc.partview.class.php";
require_once('include/charset.func.php');
$year = date("Y");
$month = date("m");
$day = date("d");
$dayBegin = mktime(0,0,0,$month,$day,$year);//当天开始时间戳
$dayEnd = mktime(23,59,59,$month,$day,$year);//当天结束时间戳
$query = "SELECT arch.id,types.typedir FROM dede_arctype as types inner join dede_archives as arch on types.id=arch.typeid where pubdate<".$dayEnd." AND pubdate>".$dayBegin.""; //这里dede换成你们自己的表前缀
$urls="";
$dsql->Execute('arch.id,types.typedir',$query);
while($row = $dsql->GetArray('arch.id,types.typedir'))
{
$urls.="http://你的域名".str_replace("{cmspath}","",$row['typedir'])."/".$row[id].".html".",";
//将上边的“http://你的域名”换成你的网址
}
$urls=substr($urls,0,-1);
$urls = explode(",",$urls);
$api = 'http://data.zz.baidu.com/urls?site=dedejs.com&token=xxxxx'; // 前边的site换成自己的site xxx换成自己的密钥
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
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);
echo $result.count($urls);
?>
注意里面的域名跟数据库前缀自己修改成自己的。
站长在每天发布完内容之后再访问一下这个文件就可以把当天发布的全部文章推送到百度搜索引擎。访问后会返回百度接口结果。
百度接口返回说明:
如果推送成功,状态码为200,可能返回以下字段:
![](https://img.haomeiwen.com/i8123595/bd1ea9e877e1be04.png)
推送成功代码示例:
{
"remain":4999998,
"success":2,
"not_same_site":[],
"not_valid":[]
}
如果推送失败,状态码为4xx,返回字段如下:
![](https://img.haomeiwen.com/i8123595/8846f98428c9c682.png)
如果推送失败代码示例:
{
"error":401,
"message":"token is not valid"
}
这样就很清晰的反映出是否推送成功。
第二种方法是每发布完一篇文章就向百度推送一次,这种比较方便,51获客网站也是用的这个方法,也推荐大家用这种方法:
我们打开后台管理目录下的article_add.php文件,找到差不多第262行的地方即注释为“返回成功信息”的上面一行加入
以下代码 :
$urls=“http://nongyejing.com".$artUrl;//前面域名换成你自己的
$urls = explode(",",$urls);
$api = 'http://data.zz.baidu.com/urls?site=dedejs.com&token=xxxx'; // 前边site换成自己的site xxx换成自己的密钥
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
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);
注意里面的域名换成自己的
添加完成后保存即可,如果想看推送是否成功可以修改下面的提示信息,代码如下:
请选择你的后续操作".$result.$urls[0].":
样发布文章之后就会显示如下图的提示:
![](https://img.haomeiwen.com/i8123595/4f1c57ad805da9fb.png)
织梦发布文章实时推送到百度的教程就写到这里,有需要的可以试着做一下这样的功能,这样对SEO的好处毕竟还是很大的。
部分代码参考:必学智库