DedeCMS发布新文档后提交原创保护到百度的实现方法

要实现DedeCMS发布新文档后提交原创保护到百度的前提条件是站点要先拥有百度的原创保护提交权限。

通过百度原创保护权限会发现,其实百度的原创提交只和链接提交多了一个类型:type=original

比如你的链接提交为:http://data.zz.baidu.com/urls?site=网址&token=token值

那么原创提交链接为:http://data.zz.baidu.com/urls?site=网址&token=token值&type=original

这样的话就比较容易了,在这里我是通过给织梦加自定义文档属性实现的,当勾选文档属性为原创时候,就提交原创链接,否则提交普通链接,做一个判断即可。

先增加一个自定义文档属性,需要执行一段sql语句(在这里注意:建议先做好数据备份,如果您的表前缀改过,下面的sql要改下表前缀),执行完成后会看到如下图的属性。

INSERT INTO `dede_arcatt` VALUES(
‘9’,
‘y’,
‘原创’);

alter table `dede_archives` modify `flag` set(
‘c’,
‘h’,
‘p’,
‘f’,
‘s’,
‘j’,
‘a’,
‘b’,
‘y’)
default NULL;

 

发布文档时候勾选原创属性即可:

然后修改织梦后台文件 article_add.php 和 article_edit.php 这里是以文档模型为例子,如果需要修改其他模型,请自行改下,主要是加入以下推送文件,在推送时候做判断。

   
if($artUrl==
)

        {

                $artUrl = $cfg_phpurl.
“/view.php?aid=$id”;

              }
else{

$aurls[]=
‘http://’.$cfg_baiduhost.
‘/’.$artUrl;


if(strpos($flag,
‘y’) !==
false)

{

$api =
‘http://data.zz.baidu.com/urls?site=’.$cfg_baiduhost.
‘&token=’.$cfg_badutoken.
‘&type=original’;

}


else

{

$api =
‘http://data.zz.baidu.com/urls?site=’.$cfg_baiduhost.
‘&token=’.$cfg_badutoken;

}

$ch = curl_init();

$options = array(

        CURLOPT_URL => $api,

        CURLOPT_POST =>
true,

        CURLOPT_RETURNTRANSFER =>
true,

        CURLOPT_POSTFIELDS => implode(
“\n”, $aurls),

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

);

curl_setopt_array($ch, $options);

$result = curl_exec($ch);

}

 

这样的话前台的调用也方便多了,调用flag属性为y的即可。

出现如下图的提示,表示提交成功:

成功返回示例:

{

       
“remain”:
4999999,

       
“success”:
1,

       
“remain_original”:
9,

       
“success_original”:
1

}

 

失败返回示例:

{

       
“error”:
401,

       
“message”:
“token is not valid”

}