You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress如何禁止搜索结果page参数的URL重写

解决WordPress搜索分页URL格式问题

嘿,这个需求我之前帮朋友处理过,其实核心就是调整WordPress的重写规则,同时修正分页链接的生成逻辑,分两步就能搞定:

第一步:移除默认的搜索分页重写规则

WordPress默认会把搜索结果的page参数转换成/page/2/这种虚拟路径,我们得先把这个默认规则删掉。可以在主题的functions.php里添加这段代码:

add_action('init', function() {
    global $wp_rewrite;
    // 遍历并移除匹配的搜索分页重写规则
    foreach ($wp_rewrite->rules as $rule => $rewrite) {
        if (strpos($rule, 'page/([0-9]+)/?\?s=') !== false) {
            unset($wp_rewrite->rules[$rule]);
        }
    }
    // 第一次添加代码时打开这行刷新规则,之后记得注释掉(避免每次加载都刷新影响性能)
    // $wp_rewrite->flush_rules();
});

注意:第一次添加这段代码后,要么执行一次flush_rules(),要么去后台「设置→固定链接」页面随便点一下保存,让WordPress刷新重写规则缓存。

第二步:修改分页链接的生成格式

接下来要让分页链接输出?s=searchphrase&page=2这种格式,有两种实用方式:

方式一:直接修改paginate_links的参数

如果你是自己在主题模板里调用paginate_links函数,直接调整它的base和format参数就行:

// 先获取当前搜索关键词
$search_term = get_query_var('s');
// 配置分页参数
$pagination_args = array(
    'base'         => home_url('/?s=' . urlencode($search_term) . '&page=%#%'),
    'format'       => '&page=%#%',
    'total'        => $GLOBALS['wp_query']->max_num_pages,
    'current'      => max(1, get_query_var('page')),
    'prev_text'    => '« 上一页',
    'next_text'    => '下一页 »'
);
// 输出分页链接
echo paginate_links($pagination_args);

方式二:全局过滤分页链接(适合不想改模板的情况)

如果你的主题是用默认函数生成分页,或者不想逐个修改模板文件,可以用paginate_links过滤器全局调整:

add_filter('paginate_links', function($link, $args) {
    // 只在搜索结果页生效
    if (is_search()) {
        $search_query = get_query_var('s');
        // 把/page/替换成?page=,同时带上搜索关键词
        $link = str_replace('/page/', '/?s=' . urlencode($search_query) . '&page=', $link);
        // 清理重复的?s参数
        $link = remove_query_arg('s', $link);
        $link = add_query_arg('s', urlencode($search_query), $link);
    }
    return $link;
}, 10, 2);

做完这两步,你的搜索分页URL就会变成example.com/?s=searchphrase&page=2的格式啦!

内容的提问来源于stack exchange,提问作者Alexander Behling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:08:11