主题技巧: WordPress 2.7 的评论分页
WordPress 2.7 将为我们带来强大的评论功能, 其中包括评论分页. 也就是说, 从此你可以体验原生的评论页面调度了.
方法说明
首先来看看可能被用到的方法. 打开文件 wp-includes/link-template.php 你会发现 WordPress 2.7 多了 4 个针对评论分页的方法:
get_comments_pagenum_link
$pagenum: 页码
$max_page: 最大页数
返回链接地址. 在本次应用中不会被用到, 但大家应该知道有这个方法, 将方便你制作插件.
next_comments_link
$label: 显示的字样, 默认是 » Newer Comments. 但我一直认为这是 bug, 应该是 Newer Comments » 吧?
$max_page: 最大页数
显示跳转到下一页的链接.
previous_comments_link
$label: 显示的字样, 默认是 « Older Comments.
显示跳转到上一页的链接.
paginate_comments_links
$args: 字符串参数组
- base: 页面 URL
- format: 我也不知道是什么. 谁能告诉我?
- total: 最大页数
- current: 当前页码
- echo: 是否显示, 默认为显示. 不显示时返回字符串 HTML.
- add_fragment: hash, 默认是 #comments. 为求统一, 方便理解, 也免得修改, 建议制作主题时 评论部分用 id="comments"
显示评论分页或返回评论分页的 HTML.
实例说明
1. 上一页和下一页
这是最简单, 也是最常被提到的, 效果与文章分页没什么两样.
<div id="commentnavi"> <span class="floatleft"><?php previous_comments_link(__('« Older Comments')) ?></span> <span class="floatright"><?php next_comments_link(__('Newer Comments »')) ?></span> <div class="fixed"></div> </div>
2. 导航式分页
对访客最透明, 使用起来最方便的, 效果与使用 WP-PageNavi 分页的效果相仿.
<div id="commentnavi"> <?php paginate_comments_links(); ?> </div>
看看前面的两个例子, 好像我们要的功能都可以实现了. 但是你觉不觉得有点怪怪的? 如果后台中选择不显示评论分页, 或者评论数不够分页, 也要显示 id="commentnavi" 的外框吗? 不! 我们要改改这个程序.
可以通过调用方法 get_option('page_comments') 来获取后台的评论分页选项.
我们还可以调用方法 paginate_comments_links('echo=0') 来知道评论是否足够并需要进行分页处理.
3. 上一页和下一页 (改进)
<?php // 如果用户在后台选择要显示评论分页 if (get_option('page_comments')) { // 获取评论分页的 HTML $comment_pages = paginate_comments_links('echo=0'); // 如果评论分页的 HTML 不为空, 显示上一页和下一页的链接 if ($comment_pages) { ?> <div id="commentnavi"> <span class="floatleft"><?php previous_comments_link(__('« Older Comments')) ?></span> <span class="floatright"><?php next_comments_link(__('Newer Comments »')) ?></span> <div class="fixed"></div> </div> <?php } } ?>
4. 导航式分页 (改进)
<?php // 如果用户在后台选择要显示评论分页 if (get_option('page_comments')) { // 获取评论分页的 HTML $comment_pages = paginate_comments_links('echo=0'); // 如果评论分页的 HTML 不为空, 显示导航式分页 if ($comment_pages) { ?> <div id="commentnavi"> <?php echo $comment_pages; ?> </div> <?php } } ?>
对于最新的评论分页功能, 我有点自己的看法, 也随便说一下吧.
评论分页并不完美. 如果外面某个链接转跳到 http://******/#5630, 但是编号为 5630 的评论并不在第一页, 那么就无法定位到这条评论上面, 转跳过来的兄弟的感觉会比较不爽.
另外, WordPress 的评论分页不是 AJAX 应用 (为浏览器的兼容性考虑, 以后也不太可能是), 所以翻页会相当耗时. 所以我建议, 就算要分页, 也要将每页显示的评论数设大一点. 30? 50? 100? 因博而异.
好了, 大概你已经知道该怎么使用了? CSS 就不多说了, 各有所好嘛, 这个不好说.
毒,大师,德味,学习了,拿分走人!
不是很明白呀,还是多看一下你的其它文章好了。
几点总结的很好。。学习专业和总结的精神
不懂那里插入分页
学习了 用上了 还有跟楼上的一个问题 在哪里修改每页显示评论数目
额 在哪里修改每页显示评论数目啊
弄不懂在哪里修改
学习了一番~谢谢分享~
我很郁闷。。。还是找插件实现吧。。
好像这插件用了之后评论分页都显示最后一页.怎么样才能实现显示第一页呢?
Looks very interesting. Thanks for sharing..
http://fashionshow99.spaces.live.com
"对于最新的评论分页功能, 我有点自己的看法, 也随便说一下吧.
评论分页并不完美. 如果外面某个链接转跳到 http://******/#5630, 但是编号为 5630 的评论并不在第一页, 那么就无法定位到这条评论上面, 转跳过来的兄弟的感觉会比较不爽."
老大这个怎么改进??
假如留言包含样式
我也是似懂非懂
我的评论也达不到分布的资格
Hello, Mg12 again,
It looks like that I have figured out the problem using two widgets.
One request to make your theme even better, is that to a tag on the post says "Share the post" so an email address box will show up and you can share the post with friends.
Thanks
Hello, MG12
I love your theme. I am useing it for a new project that I am working on.I altered it a lot base on your beautiful theme.
I have a few problems. I wonder if you can help.
The big issue is that the author.php page that I am creating having hard time pull the gravatar using author ID.
Can you help?http://blog.onesuite.com/?author=9
Thanks a lot.
安装好了,使用正常
这个太有用了。。。恩。。。V8里学习这部分
@Charles
试试回复
挺强大的.
想着要改主题就烦,还不如不升级到2.7好了。
这个功能期待很久了。以前看评论啦的长长的头都大。估计没多久ajax版的评论翻页功能插件也会有人开发了
看来WordPress 2.7出来后该换个新主题了,需要支持很多新特性,自己改又不会
@Charles
我启动了 permalink.
@sleaven
这东西就是用多了就懂了.
虽然不是很理解,不过我也一直在努力学~
@mg12
你那个demo没有启用permalink。你试下启用permalink。我的问题已经解决了,我自己设定了base参数就ok了。
其实这个很好用的, 如果留言数量很多, 可以加快页面的装载速度.
@Yacca
哈哈~ 就没有完美过.
@Patrick
@hiswing
我是用 WP23 Related Posts 插件改出来的 (就是加个功能而已). 大家都去呼吁水煮鱼同志加上这个功能吧.
@Charles
应该不会吧, 我在 Blocks 中使用正常, 你可以到这里看看效果:
http://demo.neoease.com/index.php?wptheme=Blocks
我刚试了一下paginate_comments_links()这个函数,使用默认参数的话,会有bug。还在进一步摸索中。
功能越来越强大,真好
无意中来到这里,发现我又发现一个优秀的WordPress Blogger,加入收藏了!!以后常来关注
请问,如何才能象你一样,Related Posts中显示摘要呢?
呵呵 的确只能看看而已。。评论还达不到翻页的标准啊~
暂时用不上,我的留言不多
不过很好的一篇技术文章,又学到新东西了!
能不能告诉一下?
不过我最想知道的就是你的“相关日志”是如何让它输出一部分摘要的,这个功能很不错的,早就想问问了
要是能针对某页面分页就好了。
我留言板就是用页面做的,只想让这个页面分页,评论太多了。日志页还是有多少显示多少就可以。
我的评论也达不到分布的资格
我需要评论分页...泪流流 怎么可以不完美-.-
评论不多暂时用不着分页
wordpress是不是也有类似于api文档的东西?
之前裝了一個評論分頁的插件,但是樓層計數和評論書簽就有問題。
不知道2.7的評論分頁能否克服這些問題
忧伤啊,现在在考虑一下问题?mg12老兄以后主题更新的时候可以不可以说明下更新的地方啊,我们都对主题进行了一些个性化的修改,如果升级的话那些更改不要重新再来了?可以考虑下吧!!
恩,不错不错,不过我还没到需要评论分页的程度,等到需要再自己改改~不过你就得用用了~
应该是 似懂非懂 我是文盲
仔细看过一遍.
沙发?
是懂非懂,呼呼