准备工作
1.申请新浪微博开放平台
2.开通微博写入高级接口
在应用管理平台->选择接口管理->申请权限->选择“微博高级写入接口”->填写申请理由->等待一个工作日
部署代码
把下面代码加在主题的functions.php中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | //同步新浪微博function post_to_sina_weibo($post_ID) { if (wp_is_post_revision($post_ID)) return; //修订版本(更新)不发微博 $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; $get_post_title = get_post($post_ID)->post_title; if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') { $appkey='1125374965'; //此处是你的新浪微博appkey,不修改的话就会显示来自Share Ykuaile哦!] $username='您的新浪微博用户名'; $userpassword='您的新浪微博密码'; $request = new WP_Http; $keywords = ""; //获取特色图片,如果没设置就抓取文章第一张图片 if (has_post_thumbnail()) { $image_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), 'large'); $url = $image_src[0]; } else{ //抓取第一张图片作为特色图片,如果没有发表成功,则需要放入回收站,再次还原就可以发表照片了。 global $post; $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',$post->post_content,$matches); if($output) $url = $matches[1][0]; } //获取文章标签关键词 $tags = wp_get_post_tags($post_ID); foreach ($tags as $tag ) { $keywords = $keywords.'#'.$tag->name."#"; } //修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 $status = '【文章发布】' . strip_tags( $get_post_title ).':'.mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') .$keywords. ' 查看全文:' . get_permalink($post_ID) ; //判断是否存在图片,定义不同的接口 if(!empty($url)){ $api_url = 'https://api.weibo.com/2/statuses/upload_url_text.json'; //新的API接口地址 $body = array('status' => $status,'source' => $appkey,'url' => $url); } else { $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array('status' => $status,'source' => $appkey); } $headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword")); $result = $request->post($api_url, array('body' => $body,'headers' => $headers)); }}add_action('publish_post', 'post_to_sina_weibo', 0); |
发布无图片代码
把下面代码加在主题的functions.php中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function post_to_sina_weibo($post_ID) { if (wp_is_post_revision($post_ID)) return;//修订版本(更新)不发微博 $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; $get_post_title = get_post($post_ID)->post_title; if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') { $appkey='1125374965'; $username='微博用户名'; $userpassword='微博密码'; $request = new WP_Http; $status = '【' . strip_tags($get_post_title) . '】 ' . mb_strimwidth(strip_tags(apply_filters('the_content', $get_post_centent)) , 0, 132, '...') . ' 全文地址:' . get_permalink($post_ID); $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array('status' => $status,'source' => $appkey); $headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword")); $result = $request->post($api_url, array('body' => $body,'headers' => $headers)); }}add_action('publish_post', 'post_to_sina_weibo', 0);//给发布文章增加一个分享微博的动作 |