本文目录
[隐藏]
- 1该方法的优点
- 2微博通简介
- 3微博通for wordpress插件
- 4同步文章到腾讯、新浪等微博平台
将文章自动同步到微博平台,一直都是不少站长朋友期待的。
虽然腾讯微博可以绑定博客,但是只能同步标题和链接,没办法同步摘要和图片;新浪微博连绑定都不支持。虽然借助一些WordPress链接微博等插件,或者多说等第三方评论插件,支持WordPress后台发布文章时,同步到微博,但是如果使用 Windows Live Writer 等离线工具发布文章,居然没办法同步。
所以,倡萌很苦恼很愤怒……但是,今天开始,倡萌不再苦恼,不再愤怒,因为我已经找到解决方法了,一起分享吧。
你只需借助第三方微博同步服务——微博通——绑定多个微博,同时安装 小蝴蝶 制作的 微博通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'); ?> |