求助:修改WordPress默认分页URL格式的方法
修改WordPress分页URL为page-N格式的解决方案
你遇到的问题根源是仅修改the_posts_pagination()的format参数不够——WordPress默认没有对应重写规则解析page-2这类格式,且base参数未正确配置导致链接叠加。以下是完整可行的实现步骤:
1. 添加自定义重写规则
将下面的代码添加到主题的functions.php文件中,让WordPress识别page-N格式的URL并映射到分页参数:
function custom_pagination_rewrite() { // 注册重写规则,匹配 page-数字 格式的URL add_rewrite_rule( '^page-([0-9]+)/?$', 'index.php?paged=$matches[1]', 'top' ); } add_action('init', 'custom_pagination_rewrite'); function custom_pagination_query_vars($vars) { // 确保分页变量被WordPress正确识别 $vars[] = 'paged'; return $vars; } add_filter('query_vars', 'custom_pagination_query_vars');
2. 正确配置分页函数参数
修改the_posts_pagination()的调用代码,同时设置format和base参数,避免链接叠加:
the_posts_pagination(array( 'format' => 'page-%#%/', 'base' => get_pagenum_link(1) . '%_%', 'prev_text' => __('上一页'), 'next_text' => __('下一页'), // 可根据需求添加其他参数,比如总页数、显示数量等 ));
3. 刷新重写规则
进入WordPress后台的设置 → 固定链接页面,无需修改设置,直接点击“保存更改”按钮,让新的重写规则生效。
关键说明
- 重写规则的作用是告诉WordPress:当访问
domain.com/page-2/时,实际解析为分页参数paged=2,避免跳转到首页。 base参数设置为第一页的URL加上%_%,确保分页链接基于第一页地址生成,不会出现page-2/page-3这类叠加错误。
内容的提问来源于stack exchange,提问作者bad_programmer
相关产品推荐
相关产品推荐

