如何更改搜索页面URL,使其在未指定搜索查询时仍返回页面?

时间:2021-08-20 作者:ralphjsmit

我想更改WordPress的搜索url。而不是url.com/?s=searchterm 我想把它改成url.com/search/searchtermurl.com/search?s=searchterm.

在谷歌上,有很多解决方案,但大多数归结为以下几点:

function wpb_change_search_url() {
    if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
        wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( \'s\' ) ) );
        exit();
    }   
}
add_action( \'template_redirect\', \'wpb_change_search_url\' );
这很好,但有一个警告:如果我打开页面url.com/search,它给了我一条错误消息。在旧的情况下url.com?s= 给了我一个带有“键入您的查询以搜索此搜索”的页面,现在它提供了一个now found。

所以我的问题是:如何修改上述代码,使页面/search/ 返回与空页相同的页?s=?

非常感谢!

1 个回复
SO网友:DeltaG

那不是因为你! empty( $_GET[\'s\'] ) 在你的IF声明中?删除该部分时是否可以访问搜索页面?

EDIT:

或者可以将您的函数更改为以下内容(未经测试):

function wpb_change_search_url() {
    if ( is_search() ) {
        if ( isset( $_GET[\'s\'] ) ) {
            wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( \'s\' ) ) );
            exit();
        } else {
            wp_redirect( home_url( "/search/" ) );
            exit();
        }
    }   
}
add_action( \'template_redirect\', \'wpb_change_search_url\' );

相关推荐

在WordPress上使用ElasticSearch

我是个傻瓜,所以感谢你的耐心:-)我正在尝试使用ElasticSearch和使用ElasticPress插件的Wordpress安装。所有配置和生产中。到目前为止取得了惊人的成绩。我对所有ES的使用位置感到困惑。“默认情况下,它仅在搜索页上工作。如果要使用它处理任何其他页,或索引、循环、主页、存档、税务(WP\\U查询),则必须添加到查询中:”“ep\\U integrate”“=>true”有人能帮我用代码片段实现这个吗?谢谢