Есть несколько других вопросов по этому поводу (и разбиение на страницы WP_Query кажется огромным вопросом для многих людей), поэтому я пытаюсь точно определить, как заставить его работать.
Я могу создать один пользовательский цикл с разбиением на страницы этого кода:
// 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;
... но, естественно, если я копирую / вставляю этот цикл, он работает как точный клон, то есть, когда вы нажимаете «Страница 2», вы переходите на страницу 2 для ОБА петли.
Есть ли способ отделить их друг от друга, чтобы каждая страница разбивалась отдельно?
Вот полный код с дублирующим циклом, если кто-то заинтересован в настройке своей локальной версии и в игре с ней: http://paste.pocoo.org/show/573108/
wp-query
pagination
loop
Cory
источник
источник
Ответы:
Да, это может быть сделано. Ключ должен сделать
format
параметр разным для двух запросов:источник
$wp_query
глобальным. (2) Сами поWP_Query
себе некоторые странности реализации делают невозможным использованиеget_query_var()
некоторых других функций с ним, поэтому я обычно$_GET
обращаюсь непосредственно к суперглобальному, проверяя его дезинфекцию путем приведения к немуint
. Я обновил свой ответ полным рабочим примером.