WordPress 非插件调用 Twitter 修订版
看到这个标题,估计童鞋们都要有视觉疲劳了吧,因为加上之前写过的五种方法(#1、#2、#3、#4、#5),这已经是我第六次写 WordPress 非插件的方式调用输出 Twitter 消息了,当然每种方法适应的人群各不相同,方法也各有千秋,输出的格式也不完全相同,各取所需了。
今天介绍的 Twitter 同步到 WordPress 的方法是之前几种的综合版,也算是修订版,因为在给用户定制主题的时候我发现了一个 bug。在《WordPress 免插件输出最新 Twitter》一文中提到的用 Twitter Search(search.twitter.com)解析 feed 的方法,但是我发现好多 Twitter 帐户根本无法在 Twitter Search 中找到,也就无法解析订阅源,原因不明,很是神奇。所以我就想用 Twitter 原生态的 feed 来解析,这个是 Twitter 的就一定有,那就不怕找不到订阅源了吧~
把以下代码放在需要显示的地方,比如 sidebar.php 或者 header.php 中:
$twitterid = "wange1228"; //这里换成自己的 Twitter 帐户
function autolink($linktext) //用正则过滤出链接文本,并自动加上 url 链接
{
$linktext = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\1" target="_blank" rel="nofollow">\1</a>', $linktext);
if( strpos($linktext, "http") === FALSE ){
$linktext = eregi_replace('(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="http://\1" target="_blank" rel="nofollow">\1</a>', $linktext);
} else {
$linktext = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\1<a href="http://\2" target="_blank" rel="nofollow">\2</a>', $linktext);
}
return $linktext;
}
require_once (ABSPATH . WPINC . '/class-feed.php');
$feed = new SimplePie();
$feed->set_feed_url('http://twitter.com/statuses/user_timeline/'.$twitterid.'.rss');
$feed->init();
$items = $feed->get_items(0,1); //输出的 Tweet 的数量,这里显示1条,可按需修改
foreach ($items as $item)
{
$tweet = autolink($item->get_description());
echo str_replace($twitterid.":", "<a target='_blank' rel='nofollow' href='http://twitter.com/".$twitterid."'>@".$twitterid."</a>:", $tweet);
}
?>
这样就OK了,样式部分我就不介绍了,不过关于这些代码有几点申明:
1、因为用了正则表达式来过滤 Twitter 消息中的链接文本并自动加上 url 链接,所以我顺便加上了 nofollow 标签,别让一些无谓的站外链接抢了站内的权重。
2、以上只是关键代码,属于精简版的,和我现在用的效果并不完全相同。以上代码主要省略了缓存和显示相对时间的功能,Hzlzh 老兄写过非常详细的教程,我就不多介绍了,请看《网站调取Twitter信息|格式化输出时间》。如果把我这篇补 bug 的文章和他那篇结合起来,我觉得 WordPress 非插件输出 Twitter 消息的方法就堪称完美了。
3、本方法只适合于国外主机用户,国内主机需要用此方法就要把其中的订阅源换成相应的 API 地址,这个就不在本文介绍范围了,有兴趣有需要的朋友可以折腾一下。
4、因为 PHP 水平太菜,代码可能写的比较粗糙,请高手们多多指正,我忽悠小菜鸟还行,哈哈~
5、AD一下,欢迎 Follow 我的 Twitter:http://twitter.com/wange1228
-
WordPress 非插件调用最新 Twitter2010年02月11日 -
非插件同步 WordPress 日志到 Twitter2010年04月1日 -
用 FeedBurner 烧制 Twitter feed2010年03月19日 -
用 Yahoo Pipes 过滤 Twitter feed2010年03月18日
这个只能显示twitter内容,怎么调用发布时间?
好东西!就是不知道如果是zblog之类的asp博客怎么调用?
还没有用过asp的,不是很清楚耶
Pingback: zSnos(Veezy Edition) 主题折腾手记 | Weitian Zhao's Blog
有同步新浪微博或网易微薄的方法吗?
有同步新浪微博的:http://wange.im/output-latest-tsina-to-wordpress-without-plugin.html
网易的还没有
另外还想请教一个很久之前都没解决的问题,我那里的文章开头右上角都有一个“和ta分享”的按钮,那个是有一个滑动下拉的功能的,但是我必须启用那个jQuery lazy load plugin插件才可以用这个功能,如果禁用了那个插件就用不了。那个功能是主题自带的。
这个心患解决掉了
我那里有个很奇怪的想象哦,有时显示正常,但有时那个twitter图标会陷下去,剩下一半。twitter消息也不见,麻烦帮忙看一下怎么回事……
你说的有时是指什么情况下?随机的?还是?
我也不知道有没有什么规律,这两天都是这样,应该是“随机”的,twitter图标有时候会陷下去,只看到一半,消息就完全看不到。我试过将调用twitter的那段代码重新写过,保存。之后又可以了。反正就有点莫名其妙的。
我想把twitter信息前面的“@用户名”去掉,或者修改成自己想要的文字,应该修改哪里?
郁闷一下。。。使用这个方法在侧边栏调用出现以下错误提示。。
Warning: ./cache/6969d9b91d2a6ffb7668acca1ebfe714.spc is not writeable in /home/yescolac/public_html/wp-includes/class-simplepie.php on line 1780
研究许久未果。。。万戈求助...
cache缓存文件夹建了吗?
在wp-content里有一个cache文件夹...
这个cache需要放在根目录,和wp-content下是两个不同的cache
非常感谢 戈戈同学。已经成功解决并且使用上侧栏twitter了~~
我只知道你写过3篇~~原来是还写过这么多方法啊~~
呵呵,从不会到会,我也折腾了不少方法呀
学习了
是不是要加上$feed->set_cache_duration(1200); //设置缓存时间(1200秒)即20分钟,好像不能及时更新
恩,我也说明了,本文不涉及缓存功能
订阅你的文章,哈哈,特别是非插件应用的文章。
哈哈,谢谢,我就是爱折腾非插件的,近期还有一个非插件的文章打算呢
哈哈,继续关注
已经发到你的QQ邮箱咯
话说我申请不了啊...在线代理也不行...
哈哈,MS你对爬墙技术不熟练呀,用自/由/门啊~
ok 自、由、门管用了...申请好了.....
我这里现在用的是gtalk机器人,免了爬墙了,呵呵
我也有在用,不过我喜欢多种方法并行,嘿嘿
不错,学习了。
恩,我用的是google的
目前我用嘀咕中,呵呵。。。。。。
嘀咕好像也是有feed的吧,是国内微博中很不错的了
嘀咕不用feed ,呵呵,它有很好的api支持。我就用上次折腾的那个插件了,目前。
我晓得用到ZB里面的东西有没有~这T博,好像是被墙的,国内也能够通过这个方法看到?
可以啊,只要用api就可以看到了
没有将两个同步起来。
那还不快试试
我的是国内主机,之前用Feedburner feed的方法这几天失效了,请教万戈国内主机调用的好方法,望赐教。
Feedburner墙了 当然失效 试试feedsky吧 也有js输出的
又在这遇上了。feedsky 有点慢。
再试试feedcat吧
只怕它也被墙呢。
有api吗?用google的api就可以了,速度比feedburner还快呢
那就申请 Google api 吧,请问方法站内有?
这么邪恶的方法我怎么能放在站内呢,哈哈,请看这篇吧:
https://docs.google.com/View?id=dgdhprjz_6gcck7gg2
太感谢了,不过图片好像失效了,能发一份到我邮箱?谢谢!
呃。。。不好意思啊,文章不是我的,图片我也没有。。。不过按照这文字应该也可以完成的了
依然感谢!我尝试一下。
看来还得自己搞时间
其实这个我也有写过,只是没有写和twitter的应用上
骗人根本就没有twitter这个网站
你一定还不在地球上
你们都是蛋定星人
又是一种方法,选择多多
多多益善,突破G/F/W限制
我博客只要改代码的,没有一次是成功的。
。。。为什么会这样呢?
菜鸟布丁到访。
rel="nofollow",加上这个就成了么?
这个可加可不加,看各自的需要了
全民推特 哈哈~
我的是国内主机,呵呵
国内主机就需要用API啦~
懒得折腾了,推特都没有更新过呢。
我是一只小鸟,我用的是国外主机,看来是比较适合我了。
恩哼,那你可以试试呀
老佛爷 我是良民,没推过啊!
传令下去,全民推特!!!
被某派对洗脑了
非推客路过~~~
我要带动群众们一起推,哈哈
我以为是老文章,不过还是点进来看看,原来真的是新文章,我推的少,这个功能我早去掉了
我推的也不多,基本都用在同步上了
广告账户,号召大家一块来Spam你
这个能让你满意否?
喜欢非插件
恩恩,我也是,一切非插件!
没玩twitter 是不是落伍了?!
是啊是啊,还不快去注册一个折腾玩玩
我以前用过烧录feed的办法搞推特,后来意识到我的推特主要是拿来和熟人版聊的所以就给去了
我用过feedburner搞同步,后来feedburner被墙了,再后来。。。就没下文了
feed的优点是容易搞,缺点就是自由度低嘛。
我使用RSSxiao小工具实现了twitter,相对比较方便
恩恩,我看到了,功能是很好实现,只是不能够个性的定义样式
但是你也看到, 我的主题能发挥的余地不大,twitter能和最新文章,热门文章的样子保持一致就不错了,等后面换主题了再从你这里一一学习这些技巧
一直没有插入前十···下次发布时透露下哦·哈哈·
哈哈,我都透露在twitter上啦
是同时的不是提前的·呵呵·我twitter一直开着·但是没有注意··呼呼··
等换了主机再来学习
换小张的国外主机吧
其实有点想用国内的了 不知道有没有好的介绍介绍
偶的wp博客即将开始了
哈哈,那我就期待你的WP啦
金盆洗手了?
翻墙好麻烦。我也不发什么XX言论,在国内混混就可以了……
修修已经被地球人同化了
呵呵,我一直都是这样输出twitter消息的,建议去掉 A 标签,毕竟大多数国人在墙内,形同虚设,可参看这个http://www.hzlzh.com/wordpress-links-seo/ 嘎嘎
囧,补充:建议去掉[A]标签,刚刚那里A标签执行了
嘿嘿,对像我这样常年在墙外的人而言,还是挺有用的嘛
那就换成间接地址,反正我放twitter链也就是方便人fo,呵呵
居然用了跳转,好狡猾
我也要把一切可以nofollow的外链换成跳转的链接
学习一下,用这个不知道IP会不会被封,嘿嘿
不会啊,如果然个都要封的话,G/F/W要忙死了
呵呵..我都不知道多久没有登录推特了。现在又在玩新浪的,唉..
新浪我没有注册到自己的id,也就不玩了
就好像我注册不了百度的id ,然后所有百度产品都忽略一样,哈哈
牛啊!能不能把正则表达式,给解释下呢?这个不太会。
额。。。这个这个,太复杂了我表达能力有限啊,三两句说不清楚耶。。。
这就是传说中的 只可意会 不可言传
知我者,邙邙也
我twitter很少上的,所以还是不加在博客上了.呵呵
多上上嘛,会很有乐趣的呀
至今我都follower只有9个....所以算了,呵呵
不疲劳 你继续和G.F.W斗争 虽然我不推 还是支持你
我要发动群众一起作斗争,直到把你引上推
我不上推 是因为之前做SEO的时候申请了很多推 忘记那个是我个人的帐号了. 我肯定抵挡住了邪恶军团的诱惑,你好好煽动人民群众去斯洛FUCK墙吧
.。。。。SEO猛男
我的主题都自带,现在还使用了缓存,我自己昨天也搭了个,可以不用翻墙推了
在自己的主机上搭API?我可没这么大胆
前排
水星。。。
你首页那个灯片用的是什么插件呀,我得研究研究哈。
没有用插件耶,呵呵,纯flash+js的~
我勒个去。反映这么快?
我Google了好多插件结果都不尽人意,给人做主题需要这个。实在不行就搞静态的了。
谢谢啦~
你看看这个吧:http://u.wange.im/46,是jquery的,和我的幻灯累似,或许对你有帮助
这种我到是可以自己写出来,我想要的是插件,能和WP文章对应的那种!
再佔一個好了
上次去hzlzh的博客問問也折騰不了什麼,來拿走代碼試試看
恩,尽管去试,我来看效果
是說鎖推能正常顯示麼,我家推特的內容太糟糕不能公諸於世啊
HOHO,你的推是什么呀,我去加你
又宅又●●的推特萬戈萬萬不能FO(怕傷眼啊
真的要我家推特請FO: @xxxxxly
fo了fo了
你那個奸笑的樣子很壞心啊……
为了回复此留言,我特地开启第七层嵌套!
你说我坏心会让我的大老婆误会的,我要跳出来澄清
開玩笑啦~(摸頭
小的知錯了OTL
請萬戈的大老婆恕罪啊
我会被大老婆踢飞掉的
請她先踢飛我好了
m(_ _)m
如果真的覺得不愉快,請一定要把那留言刪掉。
我當時留言是本著開玩笑的心情……誰知道(ry
我很抱歉m(_ _)m
。。。我大老婆很好的,允许我泡MM藏私房钱,哈哈
老婆真多呃。。。。。。。
还好,也就十七、八个吧
我還以為後宮佳麗三千……我錯了。
SF~
還是習慣先坐SF再說……OTL"(被踢飛
我对MM很温柔,下不去脚啊
不 萬戈桑把我當成抖M般踢飛就可以了
小闇聲明:此沙發是自己爭取回來的
萬戈完全沒有給我任何內幕= =+
我刚才数了一下,新一届的单月沙发王诞生了,十个沙发!!!
期待軟文耶
你可以看看你的前辈9连沙的记录:
http://wange.im/geekcook-no-2.html
不愧是前輩
你已经超越前辈了
刚才忍不住去围观了下,发现好多文章贴着“噗浪”的标签……国际友人?
住在牆外世界的友人....