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

自定义WordPress搜索结果页面显示404错误排查

解决WordPress自定义博客搜索结果页跳404的问题

你当前的自定义搜索表单和URL重定向逻辑存在几个关键问题,导致目标URL无法正常解析,直接跳转到404页面。以下是针对性的修复方案:

问题排查与修复步骤

1. 修复重定向函数的语法错误

原代码中wpb_change_search_url函数开头多了一个斜杠/,导致函数无法被WordPress正确加载执行,这是触发404的基础原因之一,直接删除该斜杠即可。

2. 修正重定向逻辑,保留必要参数

原重定向代码只拼接了搜索关键词s,丢失了post_type参数,WordPress无法识别要搜索的内容类型,因此返回404。需要在重定向时完整保留post_type参数。

3. 确保WordPress识别/blog/search/路径

如果/blog/search/不是后台创建的实际页面,需要添加重写规则,让WordPress将该路径解析为合法的搜索请求。

修正后的完整代码

// 自定义博客搜索表单
function blog_search_form( $blog_form ) {
    $blog_form = '
    <form class="form-inline" id="search" action="'.home_url( "/blog/search/" ).'" method="get">
    <div class="form-group mx-sm-1 mb-2 w-100">
        <input type="hidden" name="post_type" value="post" />
        <input class="form-control w-100" id="s" name="s" type="text" placeholder="Search blog" value="'. get_query_var('s') .'" required  />
    </div>
    <input id="searchsubmit" class="main-btn btn mb-2" type="submit" value="Search" />
    </form>';

    return $blog_form;
}
add_filter( 'get_search_form', 'blog_search_form' );

// 修改搜索URL并重定向
function wpb_change_search_url() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        // 保留post_type参数,拼接完整搜索URL
        $post_type = isset( $_GET['post_type'] ) ? $_GET['post_type'] : 'post';
        $redirect_url = home_url( "/blog/search/" ) . '?post_type=' . urlencode( $post_type ) . '&s=' . urlencode( get_query_var( 's' ) );
        wp_redirect( $redirect_url );
        exit();
    }
}
add_action( 'template_redirect', 'wpb_change_search_url' );

// 可选:添加重写规则(若/blog/search/不是后台创建的页面)
function custom_search_rewrite_rule() {
    add_rewrite_rule(
        'blog/search/?$',
        'index.php?s=$matches[1]&post_type=post',
        'top'
    );
}
add_action( 'init', 'custom_search_rewrite_rule' );

最后一步:刷新重写规则

修改代码后,进入WordPress后台「设置-固定链接」页面,无需修改任何设置,直接点击「保存更改」,让WordPress刷新重写规则,确保新的配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:05:34