Conserver le paramètre d'URL personnalisé sur plusieurs pages

4

J'ai créé un paramètre d'URL personnalisé pour trier les messages en fonction de leurs scores de vote. J'ai un lien "le plus voté" qui envoie un paramètre ?sort=most_voted URL et un filtre de messages de requête que j’affiche avec le plus de votes.

Si, par exemple, je souhaite afficher les messages les plus votés dans la catégorie 5, j'aurai besoin d'une URL semblable à celle-ci ?cat=5&sort=most_votes

Comment conserver / attacher le paramètre sort dans l'URL lors de la navigation dans les catégories (ou même par nom de balise, recherche, etc.)?

    
posée wpStudent 28.11.2010 - 22:28

2 réponses

3

Vous devrez intercepter les liens générés par WordPress et ajouter la requête var sur les URL correspondantes.

Vous pouvez le faire assez facilement avec un filtre sur les URL de catégorie avec quelque chose comme ...

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

J'ai également repéré cette liste pratique de filtres sur La publication de Mike sur SO SO , elle devrait couvrir toutes les URL possibles pour lesquelles vous souhaitez modifier les vars de la requête ...

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

J'espère que ça aide ..

    
réponse donnée t31os 29.11.2010 - 18:23
2

Vous pouvez utiliser la add_query_arg () (Fonction Wordpress) pour ajouter un paramètre supplémentaire à la requête (ou également appelée query-info) dans une URL.

$baseUrl = '...'; // the url you want to add your parameter to
$sort = '...'; // the sort parameter you have
$sortUrl = add_query_arg('sort', $sort, $baseUrl);
    
réponse donnée hakre 29.11.2010 - 10:52

Lire d'autres questions sur les étiquettes