首页 » WordPress » 同步 WordPress 博客日志到新浪微博

同步 WordPress 博客日志到新浪微博

该功能已经整合到新浪连接插件中,请直接下载新浪连接插件来使用同步 WordPress 博客日志到新浪微博功能。

前面我介绍新浪微博开放 API,以及使用新浪 API 的 OAuth 协议创建新浪连接插件,可以使用新浪微博的帐号登录 WordPress 博客,今天介绍下如何同步 WordPress 博客日志到新浪微博,同步日志到新浪微博非常简单,我前面介绍了同步到嘀咕雷猴等微博客,同步到新浪微博的方法基本也一致,分为两步:

首先我们创建更新状态到新浪微博的函数,这里我用到了 WordPress 自带的 WP_Http 类(关于 WP_HTTP 的介绍你可以查看这篇文章:如何在WordPress 发起HTTP Requests):

function update_sina_t($status){
    $username = "你的新浪微博的帐号";
    $password = "你的新浪微博的密码";
    $api_url = 'http://api.t.sina.com.cn/statuses/update.json';
    $body = array( 'status' => $status,'source'=>'3279848611');
    $headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") );
    $request = new WP_Http;
    $result = $request->request( $api_url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers ) );
}

上面代码中,需要在相应的位置输入你的新浪微博帐号和密码。

然后 WordPress 日志发布之后的 hook 是 publish_post,我们可以在这个 action 执行的时候执行上面的函数,从而同步 WordPress 博客日志到新浪微博但是任何一次在 WordPress 后台点击更新日志都会触发这个 action,所以我们要用自定义字段记录是否已经把日志同步到了新浪微博:

add_action('publish_post', 'publish_post_2_sina_t', 0);
function publish_post_2_sina_t($post_ID){
    $sina_t = get_post_meta($post_ID, 'sina_t', true);
    if($sina_t) return;
    $status = $_POST['post_title'].' '.get_permalink($post_ID);
    update_sina_t($status);
    add_post_meta($post_ID, 'sina_t', 'true', true);
}

把上面两段代码复制到主题的 functions.php 文件即可。当然你也可以直接下载这个文件(wp-sina-t.zip)上传到插件目录,然后激活。

PS:我的新浪微博是:denishua,欢迎大家围观!

标签:

分享到:

24 条评论 添加你的评论 →

  • 周GG 2010-06-17 10:35:46 #

    我使用的是嘀咕插件同步

    支持 反对2

  • bolo 2010-06-17 23:52:36 #

    在新浪微博的“工具”里绑定博客就可以同步了

    支持3 反对1

  • xiaolong 2010-06-18 10:24:00 #

    不好意思,我没有你的联系方式,你博客也不给专门留言的地方,所以每次我有问题问你都是随便找片文章留言,导致文不对题,抱歉。
    我要问的问题:我发现Google收录了我的一些不该搜录的东西,比如wp-content/plugins/auto-highslide/,这里面没有用户想要的东西,我是不是要写一个Robots.txt,你写了吗?

    支持 反对1

  • 活土匪 2010-06-21 05:56:07 #

    编辑旧日志,也会发布到新浪微博……能把发布新日志和编辑旧日志做个区分么?

    支持 反对

  • 乘风归来兮 2010-06-30 14:48:27 #

    水煮鱼的东西不错,可惜有些插件我的服务器不支持,比如你最新的新浪微博插件,郁闷的很哪

    支持 反对

  • andy_bxh 2010-07-01 13:57:30 #

    安装啦这个插件,但是没有与新浪,豆瓣同步登陆的那个按钮,是怎么弄的,求教!!!

    支持 反对

  • 流星天空 2010-07-25 00:16:28 #

    如果这个能设定更新时间就好了。比如wp上发布过1个小时后再更新到新浪。

    支持 反对

  • moming25 2010-07-25 11:44:14 #

    似乎不能同步标题,只同步了一个链接过去

    支持 反对

  • 孤清 2010-08-01 11:56:12 #

    为什么发布文章后,会出现错误提示,但是文章已经发表了?

    支持 反对

  • jacksuc 2010-09-15 18:55:49 #

    不错的小东西。做推广很有用

    支持 反对

  • 村夫919 2010-10-11 20:43:06 #
    :razz:

    支持 反对

  • 翻墙代言人 2010-11-01 16:53:03 #

    你好,正在使用你的插件,非常不错,有个想法,不知如何弄,不懂PHP,希望能帮助一下。

    我想的功能是希望当摘要内容不为空时,默认发布摘要的内容,否则才发布标题内容,具体判断代码怎么修改。?

    支持 反对

  • cleverpig 2010-11-11 10:46:20 #

    感谢我爱水煮鱼的这篇博文:http://fairyfish.net/2010/06/17/wp-sina-t/

    我在使用中遇到了问题:同步WordPress博客日志到新浪微博时遇到的中文URL。

    中文问题:
    发现sinaurl转换含有中文的URL时出现错误的截断,现象重现:

    源URL:http://cleverpig.name/dan/2010/11/11/转载:同步-wordpress-博客日志到新浪微博/

    经过sinaurl处理后的:http://sinaurl.cn/h6xtew转载:同步-wordpress

    很明显,目前的sinaurl并不支持URL中含有中文。

    解决方法:
    先将URL用支持中文URL的tinyurl包裹一下,然后就不怕了。

    具体方法:先将http://sinaurl.cn/h6×6XW 中的代码添加到functions.php里,然后修改wp-sina-t插件,套一层tinyurl。

    详见,欢迎评论:http://tinyurl.com/2bpebb3

    支持 反对

  • leo_de 2010-11-24 13:14:42 #

    受教了! :shock:

    支持 反对

  • 廖冬 2011-01-29 01:27:11 #

    您太强悍了

    支持 反对

  • ikoDotA 2011-03-11 16:40:53 #

    来自新浪微博

    支持 反对

  • 林泉LinQuan 2011-04-08 13:12:40 #

    40302:Error: auth faild!(#403)
    是怎么回事呢?

    支持 反对

  • 老鲨哎 2011-10-04 14:35:43 #

    博主,我用插件方式的,但是好久都不同步到新浪微博,是不是会有延迟? 我等了快半个小时了,新浪微博还没有。。所以。。来问问!

    支持 反对

发表评论

你必须 登陆 之后才能留言。你可以使用以下方式快速登陆我爱水煮鱼:

使用新浪微博登陆 使用腾讯微博登陆 使用豆瓣登陆

你也可选择直接在本站 注册