之前,从 WordPress 最新日志同步到 Twitter 我都是用手动的,不仅要先穿墙,还要复制日志标题,还要手动生成短网址,虽然已经习以为常,不过还是有点麻烦的。如果有一条龙服务的方法那就最好啦,果不其然,让我找到了方法,而且是免插件的!方法来自 qiqiboy,并且已经制作成了插件,非常感谢 qiqiboy 还发给我此插件供内测使用,能做插件的才是真正的高手呀,不过 qiqiboy 暂时没有公布此插件的下载地址,需要的朋友可以问 qiqiboy 要一个玩玩。
我这里就转载一下 qiqiboy 非插件实现同步 WordPress 日志到 Twitter 的方法,把以下代码复制到 WordPress 主题文件夹下的 functions.php 中即可:
add_action('publish_post', 'get_post_message');
function get_post_message($id)
{
if($_POST['action'] != "autosave" and $_POST['post_status'] != "draft")
{
$mypost = get_post($id);
$title = strip_tags(get_the_title($id));
$postlink = get_permalink($id);
if($_POST['original_post_status'] == 'publish')
{
if (time() - strtotime($mypost->post_date) < 60*60*24*1 )
{
return;
}
$title = "【博文修改】" . $title;
}
else
{
$title = "【博客更新】" . $title;
}
if ($shortlink=="")
{
$shortlink = "http://u.wange.im/api.php?url=" . $postlink;//这里是我的短网址 API,你也可以换成 qiqiboy 的 u.boy.im
}
$url_contents = file_get_contents($shortlink);
$temp_length = (strlen($title)) + (strlen($url_contents));
if($temp_length > 137)
{
$remaining_chars = 134 - strlen($url_contents);
$title = substr($title, 0, $remaining_chars);
$title = $title . "...";
}
$message = $title . " - " . $url_contents;
return (wp_to_twitter($message));
}
}
function wp_to_twitter($message)
{
$username = "twitter用户名";
$password = "密码";
$url = 'http://twitter.com/statuses/update.xml';//国外用户使用这个,国内的用户则通过下面的api代理来发布。(代理可能会不稳,出现更新失败)
//$url = 'http://nest.onedd.net/api/statuses/update.xml';
/*这里有两种方法,一种是使用curl函数,如果你的主机不支持curl函数,则还可以使用下面一种。
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
*/
$body = array( 'status'=>$message );
$headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") );
$request = new WP_Http;
$result = $request->request( $url , array( 'method'=>'POST', 'body'=>$body, 'headers'=>$headers) );
}
function get_post_message($id)
{
if($_POST['action'] != "autosave" and $_POST['post_status'] != "draft")
{
$mypost = get_post($id);
$title = strip_tags(get_the_title($id));
$postlink = get_permalink($id);
if($_POST['original_post_status'] == 'publish')
{
if (time() - strtotime($mypost->post_date) < 60*60*24*1 )
{
return;
}
$title = "【博文修改】" . $title;
}
else
{
$title = "【博客更新】" . $title;
}
if ($shortlink=="")
{
$shortlink = "http://u.wange.im/api.php?url=" . $postlink;//这里是我的短网址 API,你也可以换成 qiqiboy 的 u.boy.im
}
$url_contents = file_get_contents($shortlink);
$temp_length = (strlen($title)) + (strlen($url_contents));
if($temp_length > 137)
{
$remaining_chars = 134 - strlen($url_contents);
$title = substr($title, 0, $remaining_chars);
$title = $title . "...";
}
$message = $title . " - " . $url_contents;
return (wp_to_twitter($message));
}
}
function wp_to_twitter($message)
{
$username = "twitter用户名";
$password = "密码";
$url = 'http://twitter.com/statuses/update.xml';//国外用户使用这个,国内的用户则通过下面的api代理来发布。(代理可能会不稳,出现更新失败)
//$url = 'http://nest.onedd.net/api/statuses/update.xml';
/*这里有两种方法,一种是使用curl函数,如果你的主机不支持curl函数,则还可以使用下面一种。
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
*/
$body = array( 'status'=>$message );
$headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") );
$request = new WP_Http;
$result = $request->request( $url , array( 'method'=>'POST', 'body'=>$body, 'headers'=>$headers) );
}
效果就可以见我 Twitter (@wange1228)上更新的最新消息,好消息:qiqiboy 又更新了此文,推出了在 Twitter 中同步 WordPress 标签的方法,而且还有同步 WordPress 日志到新浪微博的方法,有兴趣的朋友赶去看看。
-
非插件同步 WordPress 日志到嘀咕2011年03月31日 -
WordPress 非插件调用最新 Twitter2010年02月11日 -
WordPress 免插件输出最新 Twitter2010年02月10日 -
Wordpress 同步日志到 PageCookery 微博客2011年02月7日
Pingback: 同步 WordPress 日志到 腾讯微博等其他媒体 – Yorian关于网站那点事儿
对这个不是很懂,但进来了就要看看
此方法目前还管用吗?
这个怎么全链接输出?不缩短网址
悲剧的出错了,万哥帮忙看一下,发布日之后出现:
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/xishao/domains/xishao.net/public_html/wp-content/themes/WPSummer/functions.php on line 155
Warning: file_get_contents(http://u.boy.im/api.php?url=http://www.xishao.net/other/584.html) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/xishao/domains/xishao.net/public_html/wp-content/themes/WPSummer/functions.php on line 155
Warning: Cannot modify header information - headers already sent by (output started at /home/xishao/domains/xishao.net/public_html/wp-content/themes/WPSummer/functions.php:155) in /home/xishao/domains/xishao.net/public_html/wp-includes/pluggable.php on line 890
file_get_contents()出错了,主机支持这个函数吗?
明天问问,估计就是不支持这个函数的原因。那有替代的方法吗?
呃。。。没有,这条路是必经的
看来我和推无缘了…SSH不给力,主机也不给力,我哭…555…
我用chrome 老出现这个 http://wange.im/get_option(%22home%22)
不知万戈出现了不
原来是chrome。。。我去试试
就是评论的名字 右键 在新标签页打开连接出现这种
直接点名字打开没有这种事情
我用了这个$url = 'http://nest.onedd.net/api/statuses/update.xml';
然后剩下的需不需要去掉注释?
/*这里有两种方法,一种是使用curl函数,如果你的主机不支持curl函数,则还可以使用下面一种。
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
*/
不需要,两种方法任选其一的
哈哈,我就借你短地址一用啦~~~等抽空自己再架一个
腾讯围脖现在市场大啊,万哥开始折腾个同步到腾讯的吧
这个我也无能为力的啊。。。
有同步到 空间的吧
为什么没有同步到QQ围脖
QQ没有公开过API,所以无法同步
微博有字数限制 http://fairyfish.net/2010/12/20/qq-connect/ 不过这个可以参考
qq的那个开放平台 http://open.t.qq.com/
微博公布了 api吧
微博有字数限制 http://fairyfish.net/2010/12/20/qq-connect/ 不过这个可以参考
qq的那个开放平台 http://open.t.qq.com/
国外用户指的是使用国外虚拟主机的吧? 我用的米国的host ,那就用那个api?
美国主机可以直接用twitter的那个,不需要API了
很经典的文章,谢谢分享!
有插件版的吗?
有啊,在qiqiboy那里就有,你可以去看看,新发布的
看看!!
呵呵,这个有意思
换个QQ号试下,呵呵
试下QQ
呵呵,也是雷锋的一员啊
很有用的东西~
万戈的博客好漂亮!
哼,你才发现呀
很行 向雷锋同学学习
汉兄也有加入雷锋群?
沒得 哈哈 暫時未放点击广告 所以还未靠拢组织
不用W,呵呵
好复杂,学习了
其实一点也不复杂哟,复制到functions.php里就可以了
Twitter 目前不适合放置在个人 blog 上,因为它在天朝就是一个敏感性的东西~~
对于独立博客,就要彻底独立,不畏天朝
PS,想很不好意地和你说一下,受朋友所托,让我仿你现在的主题,我要扒你的皮了
如果被墙了 还能同步到twitter吗
可以啊,我用的就是国内主机,用API穿墙而过
qiqiboy厉害还是小邪厉害
两个人有的一拼,都很牛的
虫子。。。。
twitter是什么啊?
假装不知,飘过~
为了本水新榜,回复一下,万折腾
我亲爱的雯雯呀,你的博客啥时候换主机呀。。。我上不了啊,抓狂
这个主机才用一会会时间,还没几天呢,还是人家友情赞助的,还速度很好,要不你翻-墙吧
。。。现在要看雯雯的博客只能在google reader上。。。
据老七反映,进我的博客要翻-墙
不是啊,我翻啦,还是不行。。。
一直没用twitter
twitter如此潮流,你居然不玩
估计主要原因是要翻-墙,比较麻烦
恩,无论如何,手动肯定不如自动来的方便啦
呵呵,不错,正在用~~
发现你又换header了。。。。
原来没有header,我加了一个~呵呵
太帅了,以后有主题设计的活就交给你做啦
不是吧,我连榜都不上了?
才月初,小三加油
有空试试哈,基本上是即时同步的,很不错哟
我是直接用feedburner绑定的...
等你更新文章,我去看看效果
三篇Twitter技术文,被你诱惑的有种从新玩Twitter的冲动
哈哈,那就重归twitter吧
在twitter里推广的效果怎么样啊?
不知道耶,没有这方面的统计
呵呵 我用的插件
为什么要用插件?我同步文字直接用feedburner 超方便快捷
不过feedburner没有这个函数定义来的个性化吧
可以的,前缀后缀 # tags 都能自定义的!嘿嘿 重要的是不消耗自己的host
有这种事,我也要去玩玩
qiqiboy也推出了插件,而且被官方收录了,强啊
http://shansing.com/?p=1
赶紧删除这条评论!!!!
NONONO,到我这里的评论可没那么容易删哦
我用的是我爱水煮鱼介绍的那个利用follow5的方法
follow5的方法我也有所耳闻,follow5是有延时的,但是这个方法基本上是同步更新的
你就折腾你的twitter吧!
wordpress+twitter,我一起折腾,哈哈
刚用上啦~太感谢了~
那个Google的短网址有API么?
google的短网址API可以去google apss服务里添加
哇塞,本分人只能在落寞的最后出现阿
哈哈,你怎么能算是在最后呢
同步到QQ得也来个吧,呵呵
不能同步到QQ,QQ有审查,不安全
我手动更新~这样可以想点吸引人的话~
那倒是也不错,我不是懒的再上twitter了,呵呵
好歹还在第一页……不想看代码的掩面飘过……
想飘?哪里跑!!!
哈,感谢万兄帮忙测试插件……嘿嘿,其实插件已经发布了……http://www.qiqiboy.com/plugins
不用客气,相当之好用呢,嘿嘿,是我该谢你才对
万戈就是神人。。好像没有万大师解决不了的问题嘛。。
呵呵,过奖啦,我就是一个CP党,到处抄抄转转
能来盖楼就是好样的,欢迎,哈哈
占据15楼
沙发挤满了,和你挤一下~
The third
杯具啊,在Ubuntu下正打算输入“抢地板”的时候,输入法死掉了,用英文打出来再发布,已经被人抢先了
哈哈,沙发就是这么诞生的
是第七?
绝对有黑幕。。我这么快。。都没抢到。。你们好歹看下文章啊。。
我是在群里第一时间发布的
技术贴的沙发是不是我的?
差距仅在几秒内
第二
数了下,是第四
不是,我是第三栋楼才对,每栋楼的楼层是不定的。
不要狡辩!反正不是第二,哼哼
算了 抢个沙发先
又差一点
先拿下!
caca
木木居然又如此速度,可惜啊
马上,立刻开始动手。
俺现在也是有WP的人了。
你的WP是?
2级米,还在折腾着呢。