Ich habe eine Paginierung paginate_links()
wie folgt implementiert :
<?php
function wpse229670_pagination( $query = false ) {
global $wp_query;
$query = $query ? $query : $wp_query;
$total_pages = $query->max_num_pages;
$big = 999999999;
if ( $total_pages > 1 ) {
echo '<nav class="navigation posts-navigation" role="navigation">';
echo '<strong>'. __( 'Pages:', 'text-domain' ) .'</strong> ';
echo paginate_links( array(
'base' => ,
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $total_pages
) );
echo '</nav>';
} //endif ( $total_pages > 1 )
}
Und ich kann meine Paginierung einfach wpse229670_pagination();
innerhalb der Schleife anzeigen oder für jede benutzerdefinierte Schleife die lokale Abfrage als Parameter übergeben.
Es funktioniert gut.
Das Szenario ist, dass ich einige Abfrage-Argumente wie dieses hinzufüge, um dem Benutzer eine modale Warnung anzuzeigen:
$terms = wp_get_post_terms( $post_id, 'my_tax' );
$term_link = get_term_link( $term_id, 'my_tax' );
$parameterized_url = add_query_arg( 'from_expired', 1, $term_link );
wp_redirect($parameterized_url);
exit;
Aber die Paginierungslinks zeigen weiterhin die Warnung an, da ich nicht remove_query_arg()
aus der Abfrage kann und die folgenden Seiten auch das Argument enthalten.
Ich denke, es wäre besser, wenn ich notwendige [einmalige] query_args in meiner Paginierungsfunktion entfernen könnte. Du weißt, ich kann nicht:
//$query = remove_query_arg( 'from_expired', $query );
denn $query
in meiner Funktion ist ein Objekt.
Also, wie kann ich remove_query_arg()
von einem $wp_query
Objekt oder von paginate_links()
?
quelle