Ich versuche, die Seiten zu ändern, wenn ich auf meiner Website nach Kategorien suche. Wenn ich nicht unter einer bestimmten Kategorie suche, kann ich die Seiten wechseln, aber wenn ich nach einer Kategorie suche, kann ich die Seiten nicht wechseln.
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
$orderby = ( get_query_var( 'orderby' ) ) ? absint( get_query_var( 'orderby' ) ) : 'display_name';
if($_GET['search'] && !empty($_GET['search'])) {
$search = $_GET['search'];
}
if($_GET['category'] && !empty($_GET['category'])) {
$category = $_GET['category'];
}
$args = array(
'orderby' => 'Rand',
'number' => 7,
'paged' => $paged,
'search' => '*'.esc_attr( $search ).'*',
'meta_query' => array (
array(
'key' => 'organization_category_2',
'value' => $category,
'compare' => 'like'
)
)
);
$user_query = new WP_User_Query($args);
Und meine Paginierungslinks:
<?php
$total_user = $user_query->total_users;
$total_pages=ceil($total_user/7);
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '?paged=%#%',
'current' => $paged,
'total' => $total_pages,
'prev_text' => 'Previous',
'next_text' => 'Next',
'type' => 'list',
));
?>
Immer wenn ich versuche, eine Suche durchzuführen, erhalte ich eine URL wie die folgende:
https://mywebsite.ca/directory/?search&category=Government#038;category=Government&paged=2
Die Paginierungsfunktionen arbeiten von der Hauptabfrage ab, sodass Sie pre_get_posts
verwenden müssen, anstatt eine neue Abfrage zu erstellen, damit sie funktionieren.
Da Sie jedoch WP_User_Query
verwenden, wird das Standard-Paginierungssystem für Sie niemals funktionieren. Sie müssen hier Ihr eigenes Paginierungssystem erstellen, Ihre eigenen URLs manuell generieren und die Seite selbst basierend auf der URL einrichten
if( $user_query->max_num_pages > 1 ) {
$big = 999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, $paged ),
'total' => $user_query->max_num_pages
) );
}
Dies könnte für Sie nützlich sein
Dies ist ein Beispiel aus dem offiziellen WordPress-Codex https://codex.wordpress.org/Function_Reference/paginate_links#Example_With_a_Custom_Query
Beispiel einer benutzerdefinierten Abfrage:
<?php
//Protect against arbitrary paged values
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
$args = array(
'posts_per_page' => 5,
'category_name' => 'gallery',
'paged' => $paged,
);
$the_query = new WP_Query( $args );
?>
<!-- the loop etc.. -->
Beispiel für paginate_links-Parameter, die an die oben angegebene benutzerdefinierte Abfrage angepasst wurden:
<?php
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $the_query->max_num_pages
) );
?>