【转】WordPress发布文章自动同步到新浪微博详细方法

【转】WordPress发布文章自动同步到新浪微博详细方法

作者:明星 |  时间:2015-09-07 |  浏览:3264 |  9 条评论

《WordPress发布文章自动同步到新浪微博详细方法》是在wordpress贴吧看到吧友网站上分享的,感觉很实用,于是就直接转到自己的博客了。

具体方法如下:

第一步:申请开发者权限

使用你的新浪微博账号登陆微博开放平台,网址:http://open.weibo.com/

点击页面导航中[编辑开发者信息]或访问:http://open.weibo.com/developers/basicinfo ,根据页面表单内容填写信息,提交后等待新浪方审核。新浪的审核时间并不长,会在一个工作日的时间内处理审核。开发者审核很好过,过了就可以开发应用了。

第二步:网站接入

在微博开放平台的首页点击橙色的[立即创建微连接接]->[网站接入] 或 访问http://open.weibo.com/webmaster/add

根据表单内容一步一步填写就好了,注意:第一步的应用名就是图1中的来源名称。

补全应用信息之后,提交审核,也会在一个工作日内完成审核。提交审核之后,你就可以使用新浪的开放端口进行同步博客文章了,只是在审核通过之前,来源位置显示的是未审核应用字样,但不影响开发和使用。

第三步:wordpress 代码

提交审核之后,我们会得到一串“App Key”码,这个很重要。记住在哪里能找到:点击[我的应用]->你正在审核的应用名称。点进去就可以看到

然后在WordPress主题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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set('display_errors', true);
 
   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,'weibo_sync',true) == 1) 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='1034947262';  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username='微博用户名';
     $userpassword='微博密码';
     $request new WP_Http;
     
     /* 获取文章标签关键词 */
     $keywords ""
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords $keywords.'#'.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 '【文章发布】' strip_tags$get_post_title ).':';
     $string2 $keywords.' 查看全文:'.get_permalink($post_ID);
 
     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status $string1.mb_strimwidth(strip_tags( apply_filters('the_content'$get_post_centent)),0, $wb_num,'...').$string2;
 
     $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_urlarray('body' => $body,'headers' => $headers));
 
     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID'weibo_sync', 1, true);
   }
}
add_action('publish_post''post_to_sina_weibo', 0);
 
/*
//获取微博字符长度函数 
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8""GBK//IGNORE"$tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i<strlen($tempaddtext);$i++)
    {
        if(strlen(substr($tempaddtext,$cind,1)) > 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}

 

分页阅读: 1 2 下一页

相关推荐
更多

  1. 扶苏 2015-9-7 21:58 #1

    是个实用的技术!

    话说 能交换链接么。

    苏州人家
    http://www.suzhouren.com

  2. -久而善其之丶。 2015-9-7 22:00 #2

    现在通过微博和微信引流是王道了

    不是有个分享微博可插件吗

    可以使用一下

    九块邮官网 http://www.jiukuaiyou.club/

  3. 扶苏 2015-9-7 22:05 #3

    不好意思,打错了。。是 http://www.suzhouren.net 哈哈哈。。

  4. 星岩博客 2015-9-14 10:38 #4

    正好遇到此文,自己也有这个意图,弄个新浪微博自动同步试试

  5. 雅芙 2015-12-1 18:09 #5

    博主辛苦了,鼓励一下

  6. 雅芙 2015-12-1 18:09 #6

    看的人少,回一下

  7. 程序员 2016-2-27 11:06 #7

    抿上一口咖啡,虽有点苦,但尔后的甘甜会让你忘记苦涩。精彩人生总在风雨之后,当你感到人生的艰辛时,喝杯咖啡吧,你会从中悟出人生的简明道理。

  8. 狂族晨曦 2016-4-22 20:14 #8

    谢谢博主转载文章还添加了出处