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 URL ?sort=most_voted
et à l'aide d'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 telle que 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.)?
Vous devrez intercepter les liens générés par WordPress et ajouter la variable de requête aux 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 dans le message de Mike sur SO , il devrait couvrir toutes les URL possibles pour lesquelles vous souhaitez modifier les variables de 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 cela pourra aider..
Vous pouvez utiliser la fonction add_query_arg () (Fonction Wordpress) pour ajouter un paramètre supplémentaire à la partie requête (ou également requête-info) d'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);