Ada beberapa pertanyaan lain tentang ini (dan pagination WP_Query tampaknya menjadi pertanyaan besar bagi banyak orang) jadi saya mencoba mempersempit cara membuatnya berfungsi.
Saya dapat membuat satu loop kustom dengan pagination kode ini:
// 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;
... tapi tentu saja jika saya salin / tempel loop ini, itu berfungsi sebagai klon yang tepat, artinya, ketika Anda mengklik "Halaman 2" itu membawa Anda ke KEDUA loop.
Apakah ada cara untuk memecah ini satu sama lain sehingga masing-masing paginate secara terpisah?
Berikut kode lengkap lengkap dengan duplikat loop jika ada yang tertarik untuk membuat versi lokal mereka sendiri dan mempermainkannya: http://paste.pocoo.org/show/573108/
wp-query
pagination
loop
Cory
sumber
sumber
Jawaban:
Ya, itu bisa dilakukan. Kuncinya adalah membuat
format
parameter berbeda untuk dua kueri:sumber
$wp_query
global. (2) Ada beberapa keanehan implementasiWP_Query
itu sendiri yang membuatnya tidak mungkin untuk digunakanget_query_var()
dan beberapa fungsi lainnya, jadi saya biasanya merujuk$_GET
superglobal secara langsung, memastikan untuk membersihkan dengan melakukan castingint
. Saya telah memperbarui jawaban saya dengan contoh yang berfungsi penuh.