该功能已经整合到新浪连接插件中,请直接下载新浪连接插件来使用同步 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
文件即可。