熊掌号站点天级收录:
享受天级搜索展现,不保证收录效果;手动提交无需依赖技术开发能力。基本上网站当前天级收录配额为10条/天。账号与原创保护、优站扶植不共享提交配额,请您进行区别后分开提交;在原创保护、优站扶植提交过的数据无需再次在数据入口提交。内容享受天级抓取校验、快速展现优待。
备注:以下代码参考同行 www.daimadog.com
熊掌号提交代码
在主题的functions.php代码中添加如下代码:
// 熊掌号 新文章发布时实时推送
add_action('publish_post', 'tb_xzh_post_to_baidu');
//使用钩子在发布文章时执行下面的函数
function tb_xzh_post_to_baidu() {
$appid="111";//熊掌号appid
$token="222";//熊掌号token
global $post;
$plink = get_permalink($post->ID);
if( 'publish' !== $post->post_status && $plink ){
$isoriginal = get_post_meta($post->ID, 'is_original', true);
$urls = array();
$urls[] = $plink;
$api = 'http://data.zz.baidu.com/urls?appid='. $appid .'&token='.$token .'&type=realtime';
if( $isoriginal ){
$api .= ',original';
}
$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 = json_decode($result);
$result_text = '成功';
if( $result->error ){
$result_text = '失败 '.$result->message;
}
update_post_meta($post->ID, 'xzh_tui_back', $result_text);
}
}
只需要把其中的熊掌号配置改为你自己的就好了 。
熊掌号面板实现(在发布文章勾选是否原创)
在你的主题functions.php文件中,新增如下代码:
//熊掌号面板配置
$postmeta_xzh = array(
array(
"title" => "原创文章",
"name" => "is_original",
"std" => ""
)
);
//熊掌号推送面板
function hui_postmeta_xzh() {
global $post, $postmeta_xzh;
foreach($postmeta_xzh as $meta_box) {
$meta_box_value = get_post_meta($post->ID, $meta_box['name'], true);
if($meta_box_value == "")
$meta_box_value = $meta_box['std'];
echo '<p><label><input '.($meta_box_value?'checked':'').' type="checkbox" value="1" name="'.$meta_box['name'].'"> '.(isset($meta_box['title']) ? $meta_box['title'] : '').'</label></p>';
}
$tui = get_post_meta($post->ID, 'xzh_tui_back', true);
if( $tui ) echo '<p>实时推送结果:'.$tui.'</p>';
echo '<input type="hidden" name="post_newmetaboxes_noncename" id="post_newmetaboxes_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
}
//创建面板,其实是调用了上面的方法
function hui_postmeta_xzh_create() {
global $theme_name;
if ( function_exists('add_meta_box') ) {
add_meta_box( 'postmeta_xzh_boxes', __('百度熊掌号设置', 'haoui'), 'hui_postmeta_xzh', 'post', 'normal', 'high' );
}
}
//数据保存
function hui_postmeta_xzh_save( $post_id ) {
global $postmeta_xzh;
if ( !wp_verify_nonce( isset($_POST['post_newmetaboxes_noncename'])?$_POST['post_newmetaboxes_noncename']:'', plugin_basename(__FILE__) ))
return;
if ( !current_user_can( 'edit_posts', $post_id ))
return;
foreach($postmeta_xzh as $meta_box) {
$data = isset($_POST[$meta_box['name']]) ? $_POST[$meta_box['name']] : '';
if(get_post_meta($post_id, $meta_box['name']) == "")
add_post_meta($post_id, $meta_box['name'], $data, true);
elseif($data != get_post_meta($post_id, $meta_box['name'], true))
update_post_meta($post_id, $meta_box['name'], $data);
elseif($data == "")
delete_post_meta($post_id, $meta_box['name'], get_post_meta($post_id, $meta_box['name'], true));
}
}
//使用钩子创建面板
add_action('admin_menu', 'hui_postmeta_xzh_create');
//使用钩子,当文章保存时保存熊掌号配置数据
add_action('save_post', 'hui_postmeta_xzh_save');
这个是在发布文章时显示的是否原创文章选项:
重点来了!
上面的代码好像直接复制后,不起作用!但是如果你懂代码应该可以试试改改,它应该是你一个很好的灵感。
那么到底有没有代码直接复制过来,就可以实现将文章链接直接推送给熊掌号的呢?
答案:有!!!
如下,在主题的functions.php代码中添加如下代码: (参考 www.diyigzs.com )
/**
* WordPress API 方式自动推送到百度熊掌号*
*/
if(!function_exists('Baidu_XZH_Submit')){function Baidu_XZH_Submit($post_ID) { //已成功推送的文章不再推送 if(get_post_meta($post_ID,'BaiduXZHsubmit',true) == 1) return; $url = get_permalink($post_ID); $api = 'http://data.zz.baidu.com/urls?appid=你的APPID&token=你的TOKEN&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); //如果推送成功则在文章新增自定义栏目BaiduXZHsubmit,值为1 if (array_key_exists('success',$result)) { add_post_meta($post_ID, 'BaiduXZHsubmit', 1, true); }}add_action('publish_post', 'Baidu_XZH_Submit', 0);
}
另:如果想生成之前提交过的所有记录(不管成功或不成功),也可以通过代码实现。生成的日记在网站根目录里diyituishon.txt
实现代码如下:(这个暂未测试)
//百度推送
date_default_timezone_set('Asia/Shanghai');
add_action('publish_post', 'publish_bd_submit', 999);
function publish_bd_submit($post_ID){
global $post;
$bd_submit_enabled = true;
if($bd_submit_enabled){
$bd_submit_site = "www.example.com";//此处填写你的域名
$bd_submit_token ="xxxxxxxxxxx";//此处填写你的token
$api ="http://data.zz.baidu.com/urls?site=".$bd_submit_site."&token=".$bd_submit_token;
if($post->post_status != "publish"){
$url = get_permalink($post_ID);
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $url,
CURLOPT_HTTPHEADER => array('Content-Type: text/plain')
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$result = json_decode($result, true);
$time = time();
$file = dirname(__FILE__).'/diyituishon.txt';//生成日志文件,与代码所处文件同目录
if(date('Y-m-d',filemtime($file)) != date('Y-m-d')){
$handle = fopen($file,"w");
}else{
$handle = fopen($file,"a");
}
$resultMessage="";
if($result['message']){
$resultMessage= date('Y-m-d G:i:s',$time)."\n提交失败:".$result['message'].":\n网址:".$url."\n\n";
}
if($result['success']){
$resultMessage= date('Y-m-d G:i:s',$time)."\n提交成功:".":".$url."\n\n";
}
fwrite($handle,$resultMessage);
fclose($handle);
}
}
}
收工!