在 WordPress 中,如果要建立多頁面的文章,可以使用
<!--nextpage-->
來做分隔。
昨天意外的發現,在 rewrite 後的 permalink 中,page 會產生
Error 310 (net::ERR_TOO_MANY_REDIRECTS)
的錯誤。
本來以為可能是 rewrite 的 rule 寫錯,但反覆測試後,發現居然是 url 後跟著的 ‘/’ 惹的禍。例如:
http://tsai.it/archives/2012/04/fujifilm-gf670/2/ # Error 310 http://tsai.it/archives/2012/04/fujifilm-gf670/2 # OK.
原本以為可以從 theme 裡面的 wp_page_link 著手,但沒有 parameter 可以修改 url 尾端的 ‘/’,這樣就麻煩了,如果需要去動 wp-include 裡的 source, 到時候每一次系統 upgrade 就要改一次,但目前網路上主流的解法就是改 source:在 wp-includes/post-template.php 找到 function _wp_link_page (紅字為新增部份) (目前系統版本:WP 3.4.1)
$url = trailingslashit(get_permalink()) . user_trailingslashit("$wp_rewrite->pagination_base/?page=" . $i, 'single_paged'); $url = trailingslashit(get_permalink()) . user_trailingslashit("?page=". $i, 'single_paged');
從 code 來看,應該是”錯誤的判斷 trailslash” 所造成,但最近實在沒那個時間心力來研究,只好先將就著用了。
2012.09.06