Belos Permalinks para resultados de pesquisa com consulta extra Var
1 responda
- votos
Paramodificar as regras de reescrito dapesquisa,vocêpode ligarnofiltro Search_rewrite_rules
. Vocêpode adicionar as regrasextras de reescrita que correspondem aostipos depostagens,ou vocêpode alterar aestrutura de reescrita depesquisapadrãoparaincluirtambém otipo depostageme,em seguida,re-gerar as regras (existem quatro regras: umpadrão,um compaginge doisparafeeds). Porque WP_REWRITE :: Generate_REWRITE_RULES ()
gera regras a cada "nível de diretório" ,você receberá regraspara /Search/[Keyword]/Seção/[Post_Type]/
,/Search/[Keyword]/Seção/
e /Search/[Keyword]/
. Vocênãoprecisa da regramédia,masnão vai doermanterisso.
Add_Filter ('Search_Rewrite_Rules','wpse15418_search_rewrite_rules');
Função WPSE15418_Search_Rewrite_Rules ($ Search_rewrite_Rules)
{
Global $ WP_REWRITE;
$ wp_rewrite- > add_rewrite_tag ('%post_type%','([^/] +)','post_type=');
$ Search_structure=$ wp_rewrite- >get_search_permastruct ();
return $ wp_rewrite- >generate_rewrite_rules ($ Search_structure. '/seção/%poste_type%',EP_Search);
}
Para verificar as regras,use Meuplugin do analisador de reescrita .
To modify the search rewrite rules you can hook into the search_rewrite_rules
filter. You can either add the extra rewrite rules that match post types yourself, or you can change the default "search rewrite structure" to also include the post type and then re-generate the rules (there are four rules: one standard, one with paging and two for feeds). Because WP_Rewrite::generate_rewrite_rules()
generates rules at every "directory level", you will get rules for /search/[keyword]/section/[post_type]/
, /search/[keyword]/section/
and /search/[keyword]/
. You don't need the middle rule, but it won't hurt to keep it in.
add_filter( 'search_rewrite_rules', 'wpse15418_search_rewrite_rules' );
function wpse15418_search_rewrite_rules( $search_rewrite_rules )
{
global $wp_rewrite;
$wp_rewrite->add_rewrite_tag( '%post_type%', '([^/]+)', 'post_type=' );
$search_structure = $wp_rewrite->get_search_permastruct();
return $wp_rewrite->generate_rewrite_rules( $search_structure . '/section/%post_type%', EP_SEARCH );
}
To check the rules, use my Rewrite analyzer plugin.
Eugostaria de saber comoposso reescrever um URL depesquisa quetambém contém um Var de consultaextraem um lente Permalink usando
.wp_redirect
e oganchomodod_redirect
Eutirei o código do Nice Search Plugin quefuncionabem para alterar
http://example.com?s=africa
emhttp://example.com/search/africa
:Masestou usando uma lista suspensa SELECTem combinação com o relevansi Pluginparapermitir que os visitantes reduzissem apesquisa um determinadotipo depost. Isso adiciona um Post_Type Query Var,e.
http://example.com?s=Africa&post_type=features
. Eugostaria queissotenha uma URL algo comohttp://example.com/search/africa/section/features
.O código depesquisa agradávelfaz com que a consultapost_type sejaperdida. Entãoeutentei o seguinte código:
Mas o WordPress agora acha que otermo depesquisa é
África/Seção/Recursos
.Existe umamaneira quepossomanter otermo depesquisae a consulta vartudoem umbom Permalink?
obrigado Simon