自動同步文章到騰訊、新浪等微博平臺(支持Windows Live Writer)

本文目錄1該方法的優點2微博通簡介3微博通for wordpress外掛4同步文章到騰訊、新浪等微博平臺

將文章自動同步到微博平臺,一直都是不少站長朋友期待的。

雖然騰訊微博可以綁定部落格,但是隻能同步標題和鏈接,沒辦法同步摘要和圖片;新浪微博連綁定都不支援。雖然借助一些WordPress鏈接微博等外掛,或者多說等第三方迴響外掛,支援WordPress後臺發佈文章時,同步到微博,但是如果使用 Windows Live Writer 等離線工具發佈文章,居然沒辦法同步。

所以,很苦惱很憤怒……但是,今天開始,不再苦惱,不再憤怒,因為我已經找到解決方法瞭,一起分享吧。

wpdaxue.com-201302337

你隻需借助第三方微博同步服務——微博通——綁定多個微博,同時安裝 小蝴蝶 制作的 微博通for wordpress外掛 即可實現。

該方法的優點

支援同步20多種不同微博,隻需在微博通中綁定即可(有些微博支援自定義Key)

支援同步文章 標題、摘要和圖片(自動獲取第一張圖片,支援本地圖片和外鏈圖片)

定時發佈的文章,在正式發佈後才同步

支援同步 Windows Live Writer 等離線工具發佈的文章

每篇文章隻在第一次發佈時同步,文章的再次修改不再同步

及時同步,幾乎沒有延遲

微博通簡介

微博通(www.wbto.cn)是一個全新的社交信息聚合及分享平臺。可以同時綁定多個微博及SNS網站,一次發佈同時推送。 消息同步,轉發,迴響,收藏,私信,查看迴響、查看私信等。

微博通for wordpress外掛

這個外掛是 小蝴蝶 對wordpress微博通同步外掛的修改和完善, 實現效果: ①同步格式為標題+截取內容+鏈接②支援同步圖片(外鏈/特色圖像/本地上傳)③新文章發佈才會同步,更新文章則不同步。

同步文章到騰訊、新浪等微博平臺

1.訪問 微博通(www.wbto.cn) ,註冊一個賬號,綁定你的微博賬號

2.下載安裝 微博通for wordpress外掛 ,啟用後,在 設置>微博通同步 填入你的微博通賬號信息,保存。

3.沒有多餘設置啦!直接發佈文章試試吧!

附:微博通for wordpress外掛 的源碼

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
84
85
86
87
88
89
<?php
/*
Plugin Name: 微博通同步發佈
Plugin URI: http://xiaohudie.net (參考: 原外掛下載地址: http://www.wbto.cn/bbs/viewthread.php?tid=382)
Description: 自動把你的部落格文章同步到微博通,微博通將同步至你所綁定的各個平臺。
Version: 1.0
Author: 小蝴蝶(原作者yige)
Author URI: http://xiaohudie.net & http://t.qq.com/abcwuwuwu
*/
function wbto_install() {
global $wpdb;
$table_name = $wpdb->prefix."wbto";
if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
$sql = "CREATE TABLE " . $table_name . " (id mediumint(9) NOT NULL AUTO_INCREMENT, wbto_username VARCHAR(100) NOT NULL, wbto_password VARCHAR(100) NOT NULL, );";
}
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
function send_to_wbto($post_ID) {
$posted = get_post($post_ID);
preg_match_all('/<img[^>]+src=[\'"](http[^\'"]+)[\'"].*>/isU',$posted->post_content, $image);//匹配圖像格式
$p_sum = count($image[1]);
if ($p_sum > 0) {
$p = $image[1][0];
}
if (!$p) {
if (function_exists('has_post_thumbnail') && has_post_thumbnail($post_ID)) { //  如果支援特色圖像(WordPress v2.9以上)並且存在特色圖像,則抓特色圖像
if ($image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'post-thumbnail'))
$p = $image_url[0];
}
}
$t1=$posted->post_date;
$t2=$posted->post_modified;
$diff=strtotime($t2)-strtotime($t1);
if($diff>0){return;} //重要修改:加上瞭發佈時間判斷,如果文章更新,將不會同步到微博
$username = get_option('wbto_username');
$password = get_option('wbto_password');
$posted = get_post($post_ID);
$image_url = $p;//重要修改:抓圖像,支援外鏈圖片和本地上傳的圖片,如果有特色圖像則抓特色圖像
$excerpt=mb_strimwidth(strip_tags($posted->post_content),0,130,'...'); //截130字的內容,因為總共140字還要留一點在最後放鏈接
$fields = array();
$fields['source'] = 'wordpress';
$fields['content'] = urlencode('['.$posted->post_title.']'.mb_strimwidth(strip_tags($excerpt),0,130,'...').' '.$posted->guid); //微博格式,效果如圖,即:[標題]摘要內容+鏈接
$ch = curl_init();
if ($image_url) { 
$fields['imgurl'] =$image_url;
curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/upload.json");  
} else {
curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/update.json");  
}
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$result = curl_exec($ch);
curl_close($ch);
}
function wbto_menu() {
add_options_page('微博通同步設置', '微博通同步', 8, __FILE__, 'wbto_options');
} 
function wbto_options() { 
echo '<div class="wrap">';
echo '<h2>微博通同步</h2>';
echo '<form method="post" action="options.php">';
echo wp_nonce_field('update-options');
echo '<table class="form-table">';
echo '<tr valign="top">';
echo '<th scope="row">用戶名 <a href="http://www.wbto.cn/?app=wp">註冊</a></th>';
echo '<td><input type="text" name="wbto_username" value="'.get_option('wbto_username').'" /></td>';
echo '</tr>';
echo '<tr valign="top">';
echo '<th scope="row">密碼</th>';
echo '<td><input type="password" name="wbto_password" value="'.get_option('wbto_password').'" /></td>';
echo '</tr>';
echo '</table>';
echo '<input type="hidden" name="action" value="update" />';
echo '<input type="hidden" name="page_options" value="wbto_username,wbto_password" />';
echo '<p class="submit">';
echo '<input type="submit" name="submit" id="submit" class="button-primary" value="保存更改" />';
echo '</p>';
echo '</form>';
echo '</div>';
 
}
add_action('admin_menu', 'wbto_menu'); 
add_action('publish_post', 'send_to_wbto'); 
?>

<?php
/*
Plugin Name: 微博通同步發佈
Plugin URI: http://xiaohudie.net (參考: 原外掛下載地址: http://www.wbto.cn/bbs/viewthread.php?tid=382)
Description: 自動把你的部落格文章同步到微博通,微博通將同步至你所綁定的各個平臺。
Version: 1.0
Author: 小蝴蝶(原作者yige)
Author URI: http://xiaohudie.net & http://t.qq.com/abcwuwuwu
*/
function wbto_install() {
global $wpdb;
$table_name = $wpdb->prefix."wbto";
if($wpdb->get_var("show tables like ‘$table_name’") != $table_name) {
$sql = "CREATE TABLE " . $table_name . " (id mediumint(9) NOT NULL AUTO_INCREMENT, wbto_username VARCHAR(100) NOT NULL, wbto_password VARCHAR(100) NOT NULL, );";
}
require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
dbDelta($sql);
}
function send_to_wbto($post_ID) {
$posted = get_post($post_ID);
preg_match_all(‘/<img[^>]+src=[\’"](http[^\’"]+)[\’"].*>/isU’,$posted->post_content, $image);//匹配圖像格式
$p_sum = count($image[1]);
if ($p_sum > 0) {
$p = $image[1][0];
}
if (!$p) {
if (function_exists(‘has_post_thumbnail’) && has_post_thumbnail($post_ID)) { // 如果支援特色圖像(WordPress v2.9以上)並且存在特色圖像,則抓特色圖像
if ($image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), ‘post-thumbnail’))
$p = $image_url[0];
}
}
$t1=$posted->post_date;
$t2=$posted->post_modified;
$diff=strtotime($t2)-strtotime($t1);
if($diff>0){return;} //重要修改:加上瞭發佈時間判斷,如果文章更新,將不會同步到微博
$username = get_option(‘wbto_username’);
$password = get_option(‘wbto_password’);
$posted = get_post($post_ID);
$image_url = $p;//重要修改:抓圖像,支援外鏈圖片和本地上傳的圖片,如果有特色圖像則抓特色圖像
$excerpt=mb_strimwidth(strip_tags($posted->post_content),0,130,’…’); //截130字的內容,因為總共140字還要留一點在最後放鏈接
$fields = array();
$fields[‘source’] = ‘wordpress’;
$fields[‘content’] = urlencode(‘[’.$posted->post_title.’]’.mb_strimwidth(strip_tags($excerpt),0,130,’…’).’ ‘.$posted->guid); //微博格式,效果如圖,即:[標題]摘要內容+鏈接
$ch = curl_init();
if ($image_url) {
$fields[‘imgurl’] =$image_url;
curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/upload.json");
} else {
curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/update.json");
}
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$result = curl_exec($ch);
curl_close($ch);
}
function wbto_menu() {
add_options_page(‘微博通同步設置’, ‘微博通同步’, 8, __FILE__, ‘wbto_options’);
}
function wbto_options() {
echo ‘<div class="wrap">’;
echo ‘<h2>微博通同步</h2>’;
echo ‘<form method="post" action="options.php">’;
echo wp_nonce_field(‘update-options’);
echo ‘<table class="form-table">’;
echo ‘<tr valign="top">’;
echo ‘<th scope="row">用戶名 <a href="http://www.wbto.cn/?app=wp">註冊</a></th>’;
echo ‘<td><input type="text" name="wbto_username" value="’.get_option(‘wbto_username’).’" /></td>’;
echo ‘</tr>’;
echo ‘<tr valign="top">’;
echo ‘<th scope="row">密碼</th>’;
echo ‘<td><input type="password" name="wbto_password" value="’.get_option(‘wbto_password’).’" /></td>’;
echo ‘</tr>’;
echo ‘</table>’;
echo ‘<input type="hidden" name="action" value="update" />’;
echo ‘<input type="hidden" name="page_options" value="wbto_username,wbto_password" />’;
echo ‘<p class="submit">’;
echo ‘<input type="submit" name="submit" id="submit" class="button-primary" value="保存更改" />’;
echo ‘</p>’;
echo ‘</form>’;
echo ‘</div>’; }
add_action(‘admin_menu’, ‘wbto_menu’);
add_action(‘publish_post’, ‘send_to_wbto’);
?>

參考資料:http://xiaohudie.net/code/wbto-plugin.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *