1

我有一个这样的网址

xxxxx.com/?s=&cp_state=Porto&refine_search=yes

我试着做一个这样的网址

xxxxx.com/Porto

已经尝试使用此代码:

    function search_url_rewrite_rule() {
    if ( is_search() && !empty($_GET['s'])) {
        wp_redirect(home_url("/search/") . urlencode(get_query_var('s')));
        exit();
    }   
}
add_action('template_redirect', 'search_url_rewrite_rule');

但是这段代码给了我一个这样的网址

xxxxx.com/search/

请问你能帮帮我吗?

4

1 回答 1

0

我不能发誓这会起作用,但你正在寻找这样的东西:

add_rewrite_rule('([^/]*)/?','index.php?s=&cpstate=$matches[1]&refine_search=yes','top');

我怀疑根据 URL 中的第一段进行重写是否明智,以防您稍后想要切换到站点其余部分的漂亮链接,您会得到很多奇怪的结果。例如 example.com/blog 会搜索 blog,example.com/search 会搜索 search 等等......如果你想要别的东西,你可以编辑正则表达式,使它适合你想要的。

在此处阅读更多信息:http: //codex.wordpress.org/Rewrite_API/add_rewrite_rule

于 2012-10-20T20:48:50.117 回答