Preserve o parâmetro de URL personalizado em mais páginas

4

Eu criei um parâmetro de URL personalizado para classificar as postagens por suas pontuações de votos. Tenho um link "mais votado" que envia um parâmetro de% ?sort=most_voted URL e usando um filtro de postagens de consulta exibo postagens com mais votos.

Se, por exemplo, eu quiser exibir as postagens mais votadas na categoria 5, precisarei de um URL como este ?cat=5&sort=most_votes

Como preservar / anexar o parâmetro sort no URL ao navegar por categorias (ou até mesmo por nome de marca, pesquisa etc.)?

    
por wpStudent 28.11.2010 / 22:28

2 respostas

3

Você precisará interceptar os links gerados pelo WordPress e anexar a consulta var nas URLs relevantes.

Você pode fazer isso facilmente com um filtro em URLs de categoria com algo como ...

function add_my_query_var( $link ) {
    $link = add_query_arg( 'sort', 'most_voted', $link );
    return $link;
}
add_filter('category_link','add_my_query_var');

Também vi essa lista prática de filtros em post de Mike em SO , ele deve cobrir todos os URLs possíveis que você deseja ajustar a consulta vars para ...

add_filter('page_link','add_my_query_var');
add_filter('post_link','add_my_query_var');
add_filter('term_link','add_my_query_var');
add_filter('tag_link','add_my_query_var');
add_filter('category_link','add_my_query_var');
add_filter('post_type_link','add_my_query_var');
add_filter('attachment_link','add_my_query_var');
add_filter('year_link','add_my_query_var');
add_filter('month_link','add_my_query_var');
add_filter('day_link','add_my_query_var');
add_filter('search_link','add_my_query_var');

add_filter('feed_link','add_my_query_var');
add_filter('post_comments_feed_link','add_my_query_var');
add_filter('author_feed_link','add_my_query_var');
add_filter('category_feed_link','add_my_query_var');
add_filter('taxonomy_feed_link','add_my_query_var');
add_filter('search_feed_link','add_my_query_var');

add_filter('get_edit_tag_link','add_my_query_var');
add_filter('get_edit_post_link','add_my_query_var');
add_filter('get_delete_post_link','add_my_query_var');
add_filter('get_edit_comment_link','add_my_query_var');
add_filter('get_edit_bookmark_link','add_my_query_var');

add_filter('index_rel_link','add_my_query_var');
add_filter('parent_post_rel_link','add_my_query_var');
add_filter('previous_post_rel_link','add_my_query_var');
add_filter('next_post_rel_link','add_my_query_var');
add_filter('start_post_rel_link','add_my_query_var');
add_filter('end_post_rel_link','add_my_query_var');

add_filter('previous_post_link','add_my_query_var');
add_filter('next_post_link','add_my_query_var');

add_filter('get_pagenum_link','add_my_query_var');
add_filter('get_comments_pagenum_link','add_my_query_var');
add_filter('shortcut_link','add_my_query_var');
add_filter('get_shortlink','add_my_query_var');

add_filter('home_url','add_my_query_var');
add_filter('site_url','add_my_query_var');
add_filter('admin_url','add_my_query_var');
add_filter('includes_url','add_my_query_var');
add_filter('content_url','add_my_query_var');
add_filter('plugins_url','add_my_query_var');

add_filter('network_site_url','add_my_query_var');
add_filter('network_home_url','add_my_query_var');
add_filter('network_admin_url','add_my_query_var');

Espero que ajude ..

    
por t31os 29.11.2010 / 18:23
2

Você pode fazer uso da add_query_arg () (Função Wordpress) para adicionar um parâmetro adicional à consulta (ou também chamado de info-consulta) parte de um URL.

$baseUrl = '...'; // the url you want to add your parameter to
$sort = '...'; // the sort parameter you have
$sortUrl = add_query_arg('sort', $sort, $baseUrl);
    
por hakre 29.11.2010 / 10:52