我爱水煮鱼 » 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,欢迎大家围观!

标签:

分享到:

请选择你看完该文章的感受:

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

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

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

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

  4. 感谢我爱水煮鱼的这篇博文: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

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