2013-05-18 2 views
1

На пользовательском шаблоне страницы в моей настраиваемой теме у меня есть следующий запрос. Когда я делаю это так нумерация страниц работает:Wordpress pagination не работает, когда не сохраняется исходный объект запроса

$myqueryname = $wp_query; 
$mypost_args = array('post_type' => 'friends', 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => 4, 'paged' => $paged); 
$wp_query = new WP_Query($mypost_args); 
while ($wp_query->have_posts()) : $wp_query->the_post(); 

    Some html..... 

endwhile; 

previous_posts_link('Prev'); 
next_posts_link('Next'); 

Но когда я использую этот способ нумерации страниц не работает:

$mypost_args = array('post_type' => 'friends', 'orderby' => 'title', 'order' => 'ASC'); 
$loop = new WP_Query($mypost_args); 
while ($loop->have_posts()) : $loop->the_post(); 
     Some html..... 

endwhile; 

previous_posts_link('Prev'); 
next_posts_link('Next'); 
wp_reset_query(); 

мне было интересно, почему это происходит? В чем разница ? Извините, если мой вопрос расплывчатый, но это поможет мне лучше понять, как работает Wordpress, а не только коды копирования-вставки с форумов.

Спасибо в продвижении.

ответ

1

Если вы смотрите в code в get_next_posts_link (функция, next_posts_link вызовы) он имеет следующий код:

global $paged, $wp_query; 

if (!$max_page) 
    $max_page = $wp_query->max_num_pages; 
... 

И это использование next_posts_link

<?php next_posts_link($label , $max_pages); ?> 

Он смотрит на меня что при использовании пользовательского запроса вам нужно указать $max_pages для разбивки на страницы.

Попробуйте изменить код постраничной к этому:

previous_posts_link('Prev', $loop->max_num_pages); 
next_posts_link('Next', $loop->max_num_pages); 
+0

Sick ответ !!!! – Laxmana

+0

Забудьте отметить, что он работает :) – Laxmana

+0

Спасибо. Это хорошо знать:) – user850010

Смежные вопросы