it-swarm.com.de

Behalten Sie den benutzerdefinierten URL-Parameter auf mehreren Seiten bei

Ich habe einen benutzerdefinierten URL-Parameter zum Sortieren von Posts nach ihren Abstimmungsergebnissen erstellt. Ich habe einen Link mit den meisten Abstimmungen, der einen ?sort=most_voted URL-Parameter sendet, und ich verwende einen Filter für Abfrage-Posts, um Posts mit den meisten Abstimmungen anzuzeigen.

Wenn ich zum Beispiel die meisten gestimmten Beiträge in Kategorie 5 anzeigen möchte, benötige ich eine URL wie diese ?cat=5&sort=most_votes

Wie kann ich den Parameter sort in der URL beim Durchsuchen von Kategorien (oder sogar nach Tag-Name, Suche usw.) beibehalten/anhängen?

4
wpStudent

Sie müssen die von WordPress generierten Links abfangen und die Abfragevariable an die entsprechenden URLs anhängen.

Sie können dies ganz einfach mit einem Filter für Kategorie-URLs mit so etwas wie ... tun.

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

Ich habe auch diese praktische Liste mit Filtern in Mikes Beitrag in SO entdeckt. Sie sollte alle möglichen URLs abdecken, für die Sie die Abfragevariablen optimieren möchten ...

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

Hoffentlich hilft das..

3
t31os

Sie können die Funktion add_query_arg () (Wordpress-Funktion) verwenden, um einen zusätzlichen Parameter zum Abfrageteil (oder auch als Abfrageinfo bezeichnet) einer URL hinzuzufügen.

$baseUrl = '...'; // the url you want to add your parameter to
$sort = '...'; // the sort parameter you have
$sortUrl = add_query_arg('sort', $sort, $baseUrl);
2
hakre