能否修改WordPress分页永久链接?自定义分页URL参数格式遇问题
解决WordPress分页链接改为参数形式的问题
嘿,我来帮你搞定这个分页链接修改的问题!你的思路方向是对的,但代码里preg_match的用法有误——它返回的是匹配到的次数,不是实际的页码内容,这是导致代码没生效的核心原因。咱们来一步步修正:
修正后的可用代码
add_filter('get_pagenum_link', 'edit_paginate_url'); function edit_paginate_url($url) { // 精准匹配URL中的/page/数字结构,提取页码 if (preg_match('/\/page\/(\d+)/', $url, $matches)) { $pagenum = $matches[1]; // 移除原有的/page/数字路径部分 $url = preg_replace('/\/page\/\d+/', '', $url); // 智能拼接参数:如果URL已有查询参数用&,否则用? $url .= strpos($url, '?') !== false ? "&page={$pagenum}" : "?page={$pagenum}"; } return $url; }
关键修正点说明
- 正确提取页码:用
preg_match的第三个参数$matches来捕获匹配到的页码数字,而不是直接用函数返回值。 - 避免参数格式错误:增加了对URL已有查询参数的判断,防止出现
site.com/articles??page=2这种错误格式。 - 精准匹配修改:只针对包含分页路径的URL进行修改,不会影响其他正常链接。
另外补充一点:修改后大部分主题默认都能识别?page=参数,但如果遇到分页失效的情况,需要检查主题的分页逻辑,确保它能读取$_GET['page']来获取页码值。
内容的提问来源于stack exchange,提问作者Yur375
相关产品推荐
相关产品推荐

