URLs personalizados em resultados de pesquisa personalizados

Preciso da sua ajuda com URLs personalizados em Resultados de pesquisa personalizados (WordPress).

Eu tenho essa URL http://domain.com/?s=&categories=489&locations=310 que me traz resultados de pesquisa.

Posso replace IDs por categoria e localização “Slug” para se parecer com isso

http://domain.com/find/category-in-location/ e obtenha os mesmos resultados de pesquisa com o endereço de URL antigo.

Nota: Eu uso o plug-in Yoast SEO no WordPress.

Obrigado pela sua ajuda e cooperação.

Solutions Collecting From Web of "URLs personalizados em resultados de pesquisa personalizados"

Você pode se aproximar do que deseja, usando o gancho 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' ); 

Então você pode usar uma URL como http://domain.com/search/category+location/ .

Se você quiser mudar a search em find você pode usar o filtro search_rewrite_rules como este.

 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"); 

Então você pode usar uma URL como http://domain.com/find/category+location/ .

Nota: Lembre-se de liberar ou re-guardar seus permalinks.

Tenho certeza que, com mais alguns brincadeiras, você pode ficar um pouco mais perto do que você pediu, mas está tão perto que eu cheguei até agora.

EDIT: Desculpe, esqueci de mencionar … se você usar a function para o filtro search_rewrite_rules você precisará alterar a function my_custom_url_rewrite para isso.

 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' );