通过使用template_redirect
钩
function my_custom_search_url_rewrite() {
if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( \'s\' ) ) );
exit();
}
}
add_action( \'template_redirect\', \'my_custom_search_url_rewrite\' );
然后您可以使用如下URL
http://domain.com/search/category+location/
.
如果你想改变search
进入find
您可以使用search_rewrite_rules
像这样过滤。
function my_custom_search_url( $search_rewrite ) {
if( !is_array( $search_rewrite ) ) {
return $search_rewrite;
}
$new_array = array();
foreach( $search_rewrite as $pattern => $s_query_string ) {
$new_array[ str_replace( \'search/\', \'find/\', $pattern ) ] = $s_query_string;
}
$search_rewrite = $new_array;
unset( $new_array );
return $search_rewrite;
}
add_filter("search_rewrite_rules", "my_custom_search_url");
然后您可以使用如下URL
http://domain.com/find/category+location/
.
Note: 记住刷新或重新保存永久链接。
我相信,再进行一些修补,你可以更接近你所要求的,但这是我迄今为止所能接近的。
EDIT:抱歉忘了提。。。如果将函数用于search_rewrite_rules
过滤器您需要更改my_custom_url_rewrite
功能。
function my_custom_search_url_rewrite() {
if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
wp_redirect( home_url( "/find/" ) . urlencode( get_query_var( \'s\' ) ) );
exit();
}
}
add_action( \'template_redirect\', \'my_custom_search_url_rewrite\' );