wordpress 2.6/7 评论分页故障解除方法
最近用的Inove版本发现评论页无法翻页,一翻页就导致404无法访问出现,找到最好的办法解决了。如下:
听说 WordPress 2.7 Beta 1 发布了,就等这一刻了,因为在之前的 nightly 版本中留言分页一直存在一个问题,至少我的是这样。但,不幸的是,Beta 1 中,问题依旧,不知道开发者发现了没有。
问题描述
WordPress 2.7 中加入了这么一个函数 paginate_comments_links,用来给留言分页,类似 WP-PageNavi 插件所实现的格式。当然,同时也提供了 previous_comments_link & next_comments_link 两个函数用来实现“前一页”、“后一页”的效果。haifu.org
在没有启用自定义链接格式时,paginate_comments_links 实现的链接格式是 ?p=110&cpage=2#comments,这时 paginate_comments_links 是完全可用的。
大多数情况下,我们会使用自定义链接格式,目前我所使用的是 /archives/%post_id%。此时再次看看评论分页就会发现问题了:
http://127.0.0.1/wordpress/archives/110comment-page-2#comments
点击这个链接试试,404。当我们试图在 110 后面加上一个叫做反斜线的东东时,问题便解决了:
http://127.0.0.1/wordpress/archives/110/comment-page-2#comments
正如上面所说的,链接会正确的指向留言的第二页。
问题所在
在 link-template.php 中找到 paginate_comments_links(1280行左右),看一下代码,很快的将问题定位到 user_trailingslashit 这个函数。定位 user_trailingslashit,link-template.php 中 19 行左右,就是一个加入或去除反斜线的函数。user_trailingslashit 便是罪魁祸首。
解决问题
找到了问题所在,适当的做个小 hack 就行了。
$defaults['base'] = user_trailingslashit(get_permalink() . ‘comment-page-%#%’, ‘commentpaged’);
hack 为:
$defaults['base'] = trailingslashit(get_permalink()) . user_trailingslashit(’comment-page-%#%’, ‘commentpaged’);
打完收功。
转自:wordzine.cn
最新评论