Jest kilka innych pytań na ten temat (a paginacja WP_Query wydaje się być ogromnym pytaniem dla wielu osób), więc staram się zawęzić dokładnie, jak to zrobić.
Jestem w stanie utworzyć pojedynczą niestandardową pętlę z paginacją tego kodu:
// http://weblogtoolscollection.com/archives/2008/04/19/paging-and-custom-wordpress-loops/
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$args = array(
'showposts' => 2,
'paged' => $paged
);
$wp_query->query($args);
while ($wp_query->have_posts()) : $wp_query->the_post();
// The Post
the_title();
echo '<br>';
the_category(' ');
the_excerpt();
echo '<hr>';
endwhile;
// http://codex.wordpress.org/Function_Reference/paginate_links#Examples
$big = 999999999;
$pag_args = array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
);
echo paginate_links($pag_args);
$wp_query = null;
$wp_query = $temp;
... ale naturalnie, jeśli skopiuję / wkleję tę pętlę, działa ona jak dokładny klon, co oznacza, że kliknięcie „Strona 2” spowoduje przejście do strony 2 OBU PĘTLI.
Czy istnieje sposób ich rozdzielenia, aby każda strona dzieliła się na osobne strony?
Oto pełny kod wraz ze zduplikowaną pętlą, jeśli ktoś jest zainteresowany skonfigurowaniem własnej wersji lokalnej i zabawą się nią: http://paste.pocoo.org/show/573108/
wp-query
pagination
loop
Cory
źródło
źródło
Odpowiedzi:
Tak, można to zrobić. Kluczem jest, aby
format
parametr był inny dla dwóch zapytań:źródło
$wp_query
globalnym. (2) Istnieje kilka osobliwości implementacyjnychWP_Query
, które uniemożliwiają korzystanie z niegoget_query_var()
i niektóre inne funkcje z nim związane, więc ogólnie odnoszę się$_GET
bezpośrednio do superglobala, upewniając się, że sanityzuję, przesyłając doint
. Zaktualizowałem swoją odpowiedź z pełnym działającym przykładem.