准备工作
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); //给发布文章增加一个分享微博的动作 |