百度就是个逗逼,搞了熊掌号还没搞多久又调整业务,搞得我们老是改代码,还好百度并没有改站长快速推送的接口形式,只需要将之前熊掌号的实现接口换一下,修改下返回验证就差不多了,为了方便大家使用,我直接贴实现代码,大家可以直接复制。由于代码是DUX上取下来的,所以大家需要将所有_hui
函数换成自己的取配置项的函数名,不然会报错哟。使用DMD主题的用户可直接复制代码使用,完美同步DUX哟。
添加后台配置
在主题目录下的options.php文件中加入如下配置项:
复制
$options[] = array( 'name' => __('百度收录', 'haoui'), 'type' => 'heading' ); $options[] = array( 'name' => __('百度收录', 'haoui'), 'id' => 'bdtui_on', 'std' => false, 'desc' => ' 开启', 'type' => 'checkbox'); $options[] = array( 'name' => '快速收录-推送API', 'id' => 'bdtui_kuai_api', 'std' => '', 'desc' => '在百度搜索资源平台获得API;发布或更新文章前可选是否快速收录', 'type' => 'text'); $options[] = array( 'name' => '普通收录-推送API', 'id' => 'bdtui_api', 'std' => '', 'desc' => '在百度搜索资源平台获得API;发布或更新文章时默认推送到百度普通收录', 'type' => 'text');
加入后,在后台主题设置页面可以看到如下设置项:
添加文章发布选项
在functions.php文件中加入如下代码,用以添加写文章时右侧百度推送选项。
复制
// 百度推送 https://www.daimadog.org/6341.html //////////////////////////////////////////////////////////////////////////////////////////////////// if( _hui('bdtui_on') ) add_action('publish_post', 'tb_post_to_baidu_tui'); function tb_post_to_baidu_tui() { global $post; $plink = get_permalink($post->ID); if( $plink ){ if( _hui('bdtui_kuai_api') && isset($_POST['baidutui_kuai_on']) && $_POST['baidutui_kuai_on'] && !get_post_meta($post->ID, 'baidutui_kuai', true) ){ $ch = curl_init(); $options = array( CURLOPT_URL => _hui('bdtui_kuai_api'), CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => $plink, CURLOPT_HTTPHEADER => array('Content-Type: text/plain') ); curl_setopt_array($ch, $options); $result = curl_exec($ch); update_post_meta($post->ID, 'baidutui_kuai', $result); } if( _hui('bdtui_api') && !get_post_meta($post->ID, 'baidutui', true) ){ $ch = curl_init(); $options = array( CURLOPT_URL => _hui('bdtui_api'), CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => $plink, CURLOPT_HTTPHEADER => array('Content-Type: text/plain') ); curl_setopt_array($ch, $options); $result = curl_exec($ch); update_post_meta($post->ID, 'baidutui', $result); } } } if( _hui('bdtui_on') ) add_action( 'add_meta_boxes', 'tbcm_meta_boxs2' ); function tbcm_meta_boxs2() { add_meta_box( 'tb_baidu_tui', '百度收录', 'tb_baidu_tui_init', 'post', 'side', 'low' ); } function tb_baidu_tui_init() { global $post; $tui = get_post_meta($post->ID, 'baidutui', true); $kuai = get_post_meta($post->ID, 'baidutui_kuai', true); echo '<br>'; echo '<label><input type="checkbox" name="baidutui_kuai_on" id="">快速收录</label>'; echo '<br>'; echo '<br>'; if( $kuai ){ $kuaiObj = json_decode( $kuai ); echo '<p><strong>快速收录:'.(isset($kuaiObj->success_daily)&&$kuaiObj->success_daily>0?'<span style="color:#46B450">推送成功</span>':'<span style="color:#FF5E52">推送失败</span>').'</strong></p>'; echo '<p>推送结果:<code style="word-break:break-all">'.($kuai?$kuai:'').'</code></p>'; echo '<br>'; } if( $tui ){ $tuiObj = json_decode( $tui ); echo '<p><strong>普通收录:'.(isset($tuiObj->success)&&$tuiObj->success>0?'<span style="color:#46B450">推送成功</span>':'<span style="color:#FF5E52">推送失败</span>').'</strong></p>'; echo '<p>推送结果:<code style="word-break:break-all">'.($tui?$tui:'').'</code></p>'; }else{ echo '<p><strong>普通收录:</strong>将在发布或更新文章时推送</p>'; } echo '<input type="hidden" name="tb_baidu_tui_noncename" id="tb_baidu_tui_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />'; }
添加上面代码后,在我们第一步添加的百度推送配置项中,勾选启用。然后点击新建文章,可以看到右侧多了一个名为百度收录的选项。
功能添加完成,只需要填入你的百度推送接口即可,百度推送接口在百度搜索资源平台可以看到。
可能这个代码浩子写得比较匆忙,并没有处理推送后的返回数据,直接将返回的json数据给输出来了。所以小白们还需要仔细查看百度搜索资源平台提供的推送返回字段的含义,不过这并不影响我们使用,改天有空我再改下代码吧,最近实在没空。
评论 (4)