Quando estamos programando uma página search.php de um tema, e queremos funções de busca avançadas como por exemplo, buscar determinada palavra somente em determinada categoria, ou quando queremos buscar todos os posts de determinada categoria (usando a página de busca).
O wordpress é muito prático ao fazer esse tipo de busca avançada, basta passar via url os parametros adicionais da busca, por exemplo: “http://www.exemplo.com/?s=termo&category_name=nomedacategoria”.
Você pode os seguintes parâmetros:
- attachment
- attachment_id
- author
- author_name
- cat
- category_name
- comments_popup
- day
- error
- feed
- hour
- m
- minute
- monthnum
- name
- p
- page_id
- paged
- pagename
- post_parent
- post_type
- preview
- second
- static
- subpost
- subpost_id
- tag
- tag_id
- tb
- w
- year
No entanto se você deseja passar o parametro “s” vazio, o wordpress vai apresentar um erro de direcionamento, porque ele já não reconhece mais a url como uma URL de busca, para resolver isso, adicione o filtro abaixo no seu functions.php.
1 2 3 4 5 6 7 |
add_filter( 'request', 'my_request_filter' ); function my_request_filter( $query_vars ) { if( isset( $_GET['s'] ) && empty( $_GET['s'] ) ) { $query_vars['s'] = " "; } return $query_vars; } |
E como eu faço pra passar esse trecho depois do termo através do campo de busca?