之前讲过了百度推送和熊掌号对站点的帮助,现在就简单说一下不用插件的方法给Wordpress加上百度主动推送
获得Token
修改functions.php
functions.php处于Wordpress的根目录下,当然主题下面也有一个functions.php,这边无论修改哪个都可以,看你自己的需求了。打开functions的php,加入下面的代码:
function Baidu_Submit($post_ID) { $url = get_permalink($post_ID); $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token"; $request = new WP_Http; $result = $request->request($api, array( 'method' => 'POST', 'body' => $url, 'headers' => 'Content-Type: text/plain' )); } add_action('publish_post', 'Baidu_Submit', 0);
上面这个是最简单的方法了,当然也可以改的稍微高级一点:
function Baidu_Submit($post_ID) { $url = get_permalink($post_ID); $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token"; $request = new WP_Http; //防止重复提交 if (get_post_meta($post_ID, 'Baidu_Submit', true) == 1) { return; } $result = $request->request($api, array( 'method' => 'POST', 'body' => $url, 'headers' => 'Content-Type: text/plain' )); //判断是否提交成功,有错误则保存到错误日记 if (is_array($result) && !is_wp_error($result) && $result['response']['code'] == '200') { error_log('baidu_submit_result:' . $result['body']); $result = json_decode($result['body'], true); } //防止重复提交 if (array_key_exists('success', $result)) { add_post_meta($post_ID, 'Baidu_Submit', 1, true); } } add_action('publish_post', 'Baidu_Submit', 0);
当然,还可以加上主动提交更新数据的功能,基于上面代码修改:
function Baidu_Submit($post_ID) { $url = get_permalink($post_ID); $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token"; $request = new WP_Http; if (get_post_meta($post_ID, 'Baidu_Submit', true) == 1) { return; } $result = $request->request($api, array( 'method' => 'POST', 'body' => $url, 'headers' => 'Content-Type: text/plain' )); if (is_array($result) && !is_wp_error($result) && $result['response']['code'] == '200') { error_log('baidu_submit_result:' . $result['body']); $result = json_decode($result['body'], true); } if (array_key_exists('success', $result)) { add_post_meta($post_ID, 'Baidu_Submit', 1, true); } } function Baidu_Submit_Update($post_ID){ $url = get_permalink($post_ID); $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token"; $request = new WP_Http; $result = $request->request(str_replace('urls','update',$api), array( 'method' => 'POST', 'body' => $url, 'headers' => 'Content-Type: text/plain' )); if (is_array($result) && !is_wp_error($result) && $result['response']['code'] == '200') { error_log('baidu_submit_result:' . $result['body']); $result = json_decode($result['body'], true); } } add_action( 'post_updated', 'Baidu_Submit_Update', 0, 1); add_action('publish_post', 'Baidu_Submit', 0);