Monday, September 21, 2009

用 Feed 实现 Blogger 分页

使用 Blogger 建博客,一个很不爽的问题是在首页下方没有分页功能,这会直接导致有兴趣的读者没有办法方便的翻阅以前的旧帖子;而 Blogger 提供的模板,无论是老的 Template,还是新的 Layout,都没有相关的标签来实现这个功能,因此要加上这个功能,就只能继续 hack 了。

这两天利用 Blogger 的完整帖子的 Feed,配合 PHP 实现了这个功能。思路为:
  • 读取原始的 index.html,把帖子的部分去掉,也就是 <Blogger>...</Blogger> 这段内容
  • 读取以下 Feed 地址,解析出文章的日期、时间、标题、正文、标签等,按照原来模板的格式,用 PHP 输出到原来 index.html 放文章的地方
    http://www.blogger.com/feeds/[blogId]/posts/full?max-results=[step]&start-index=[startIndex]&orderby=published
  • 根据当前页码以及总帖数计算分页,在页面底部添加分页链接
  • 如果有条件,可以利用 .htaccess 文件,将分页的 URL 由原来的
    xxx.php?page=x
    形式替换成对搜索引擎更友好的
    /index/x
    形式

如此一来,就可以在自己不存储任何文章数据的情况下,实现分页功能。当然,直到目前,以上的 Feed 地址仍然是被墙的,需要翻墙或者使用 HTTP 代理才能成功地获取内容。

19 comments:

kira said...

请问你博客首页的分页功能也是这样实现的吗?
没有架设自己服务器的blogspot.com博客该怎么修改才能实现分页效果呢?

kira said...

突然发现你的评论貌似采用了Ajax,请问这个是怎么实现的?blogspot这样的博客也可以吗?

Gregory said...

这篇描述的就是如何在首页上实现的分页;至于 blogspot.com 上分页,也可以用类似的办法实现,只是不需要那么麻烦,直接用 JavaScript 读取 Feed 的内容,解析后再用 AJAX 的思路显示到页面上就可以了。

AJAX 的页内评论,简单来讲是把评论表单的内容通过 PHP 程序直接 POST 给 Blogger 接收评论的 URL,然后再通过评论的 Feed 地址取得新的评论列表,再更新到当前页面上。Blogspot 上的 Blog 上面要这样做,没有办法写 PHP 程序,因此只能自己写 JavaScript 来实现将评论内容 POST 到 Blogger。

AK47 said...

奇怪,为什么不能回复了呢?

KIRA said...

谢谢你的回复,我留言了几次都未能成功,不知道是不是使用了尖括号的问题,再试一下。blogspot不支持PHP,在备份的XML文件中也找不到(Blogger)(/Blogger)这样的标记。可以把修改过程再说详细点吗?

KIRA said...

果然是因为尖括号的问题...
你的blog真漂亮,第一眼看就被惊艳到了。
另外,这个分页效果似乎还有点问题,当直接跳到最后一页时仍然会显示后续数字:一共26页,直接点Last到第26页,后面还会显示27、28……出现Page 31/26 这样的错误。

Gregory said...

多谢提醒!确实是有问题,现在已经修复了~

lll9p said...

有时间我也实现一个

chenlili said...

chenlili20160629
air force 1
louboutin shoes
oakley vault
michael kors handbags
retro 11
ray ban sunglasses outlet
michael kors outlet
polo ralph lauren
coach outlet store online
adidas originals
tory burch handbags
coach outlet
louis vuitton purses
michael kors handbags
ray ban sunglasses outlet
coach outlet store online
rolex watches
designer handbags
louis vuitton bags
nike sb dunks
louis vuitton outlet stores
rolex watches
louis vuitton outlet
giuseppe zanotti outlet
ray ban sunglasses
nike blazers uk
ray ban sunglasses
coach outlet
nike store
ray ban sunglasses outlet
coach outlet
ghd hair straighteners
jordan retro 4
louis vuitton purses
coach outlet store online clearances
asics outlet
polo ralph lauren
nike sb janoski
jordan 3 white cenment

mmjiaxin said...

longchamp handbags
michael jordan shoes
jordan retro
nfl jerseys
nfl jerseys from china
mlb jerseys wholesale
timberland outlet
longchamp bags
kobe shoes
http://www.michaeljordanshoes.us.com
gg

chenmeinv0 said...

nike tn pas cher
hollister outlet
seahawks jerseys
ugg boots
kate spade outlet
louboutin femme
cheap uggs
cheap uggs
fitflop clearance
ugg slippers
2016.11.14xukaimin

xumeiqing said...

20161117meiqing
toms outlet
coach outlet store
polo ralph lauren outlet online
canada goose outlet
michael kors canada
adidas stan smith
ugg australia
coach outlet
gucci handbags
nike cortez

chenmeinv0 said...

oakley sunglasses
goose outlet
moncler jackets uk
rolex watches
red bottoms
christian louboutin outlet
longchamp bags
cheap ugg boots
oakley sunglasses outlet
ed hardy
hzx20170206

Unknown said...

ray ban sunglasses outlet
oakley vault
coach outlet
christian louboutin sale
louboutin uk
ralph lauren shirts
coach factory outlet
hollister clothing
ugg boots sale
hermes scarf
2017.2.11chenlixiang

Unknown said...

cheap jordans
oakley sunglasses wholesale
yeezy boost 350
hermes bags
michael kors canada
jerseys wholesale
ray ban wayfarer
chrome hearts outlet
beats by dr dre
christian louboutin outlet
20170215lck

Unknown said...

michael kors bags
polo ralph lauren outlet
kate spade uk
michael kors outlet clearance
louis vuitton handbags
fendi bags
fitflops sale
yeezy boost 350
pandora charms
coach outlet online
20170308huazhen

xjd7410@gmail.com said...

20170513 junda
yeezy boost
burberry canada
cheap jordan shoes
rolex watches for sale
gucci outlet online
ralph lauren outlet
coach factory outlet
fitflops sale clearance
polo outlet
michael kors handbags outlet

yanmaneee said...

golden gooses outlet
louboutin
yeezy boost 350 v2
yeezy shoes
stephen curry shoes
cheap jordans
jordan shoes
golden goose slide
nike huarache
off white jordan 1

seses said...

discover this bag replica high quality look at here now best replica bags online a knockout post Prada Dolabuy