之前用比较暴力的方式实现了分页文章的静态化,不过这样一来升级 WordPress 就不太方便了。厌烦了每次升级都要修改源文件,于是利用 WordPress 本身提供的接口实现了更好的解决方案。
以/%year%/%monthnum%/%postname%.html这样的永久链接结构为例:
1. 打开主题目录下的functions.php文件,添加以下代码:
// 添加分页处理规则 function add_custom_post_rewrite_rules($rules) { $custom_rules = array( '([0-9]{4})/([0-9]{1,2})/([^/]+)-([0-9]+)\.html$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&name=$matches[3]&page=$matches[4]', ); $rules = array_merge($custom_rules, $rules); return $rules; } add_filter('post_rewrite_rules', 'add_custom_post_rewrite_rules'); // 修改分页链接 function my_wp_link_pages($args = '') { $args .= ($args ? '&' : '') . 'echo=0'; $links = wp_link_pages($args); $links = preg_replace_callback('|([0-9]{4}/[0-9]{1,2}/)([^/]+)(\.html)(/)([0-9]+)|', 'custom_page_link', $links); echo $links; } function custom_page_link($matches) { return $matches[1].$matches[2].'-'.$matches[5].$matches[3]; }