如何通过API自动提交原创/非原创文章给百度?

春季来好快,悄无声息不知不觉中,草儿绿了,枝条发芽了,遍地野花油菜花开灿烂多姿,一切沐浴着春晨曙光,春风中摇弋轻摆,仿佛少女轻歌曼舞,楚楚动人。

熊掌号出来的时候一般站点都会博客文章发布之后就会自动提交给百度,一般分为原创文章和非原创文章,两者的 API 接口唯一的区别就是 type 的值是 original 还是 realtime。不过现在熊掌号没了变成了移动专区,原创保护功能也准备于 4 月 29 日关闭,剩下的非原创接口也变成了天级收录接口。为了纪念原先使用的 API 提交原创/非原创文章给百度,特发此贴。

通过 API 自动提交原创/非原创文章给百度

实现方法很简单,只需要将以下代码添加到当前所使用主题的 functions.php 文件中即可,一定要记得修改代码中的原创 API 接口地址和非原创 API 接口地址。

/**
* WordPress 发布文章主动推送到百度
*/

//同步
add_action( 'admin_menu', 'xiong_submit_create' );
function xiong_submit_create(){
add_action( 'post_submitbox_misc_actions', 'xiong_submit_to_publish_metabox' );
}

//同步选项
function xiong_submit_to_publish_metabox() {
global $post_ID;
$checked_o = (get_post_meta($post_ID,'original',true)==1) ? 'disabled checked="checked"' : '';
echo '<div class="misc-pub-section misc-pub-post-status"><input name="xiong_Submit_CHECK" type="hidden" value="true">熊掌号(是否提交原创):<span id="submit-span"><label><input name="original" type="checkbox" value="1" '.$checked_o.'>原创</label></span></div>';
}

//文章保存时更新原创字段
if(!function_exists('Baidu_yc')){
function Baidu_yc($post_ID) {
global $post_ID;
if(get_post_meta($post_ID, 'original', true) == 1) return;
if($_POST['original']=='1'){add_post_meta($post_ID, 'original', 1, true);} 
}
add_action('save_post', 'Baidu_yc', 0);
}

if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
if((!get_post_meta($post_ID, 'original', true))&& $_POST['original']=='1'){add_post_meta($post_ID, 'original', 1, true);}
if(get_post_meta($post_ID, 'original', true) == 1) {
$api = 'http://data.zz.baidu.com/urls?appid=1546947024487085&token=K7tcCjuIr9A1Nl8f&type=original';
}else{ 
$api = 'http://data.zz.baidu.com/urls?appid=1546947024487085&token=K7tcCjuIr9A1Nl8f&type=realtime';
}
$request = new WP_Http;
$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
$result = json_decode($result['body'],true);
//如果推送成功则在文章新增自定义栏目 Baidusubmit,值为 1
if (array_key_exists('success_realtime',$result)||array_key_exists('success_original',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
}

成功添加以上代码和确保 API 接口地址正确之后,我们在编辑文章的时候,在发布栏目下方就会出现是否提交原创的选项,勾选就表示原创文章,不勾选就是非原创文章。具体如下图所示:

现在原创保护功能准备下线了,那么上述代码我们就可以直接删除有关原创相关的代码,仅保留非原创接口(天级收录接口)即可。修改之后的代码如下:

/**
* WordPress 发布文章主动推送到百度
*/

if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
$api = 'http://data.zz.baidu.com/urls?appid=1546947024487085&token=K7tcCjuIr9A1Nl8f&type=realtime';
$request = new WP_Http;
$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
$result = json_decode($result['body'],true);
//如果推送成功则在文章新增自定义栏目 Baidusubmit,值为 1
if (array_key_exists('success_realtime',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
}

如果没有原创保护接口的话,直接使用最后的代码即可。就算有原创保护接口,到了 4 月 29 日也作废了,还是要用最后的代码。

本文如何通过API自动提交原创/非原创文章给百度?到此结束。话多不如话少,话少不如话好。小编再次感谢大家对我们的支持!

标签: API