Временная разбивка на страницы не работает должным образом
Поэтому я написал следующее, чтобы создать переходный процесс:
$wp_object_i_created = new WP_Query('cat=1');
set_transient('category_one_posts', $wp_object_i_created, 60*60*1);
Хорошо, тогда я решил: "Знаешь, давай пройдемся по этому и выплюнем сообщения".
Поэтому я сделал следующее:
if(false !== get_transient('category_one_posts')){
$posts_inside = get_transient('category_one_posts');
if($posts_inside->have_posts()){
while($posts_inside->have_posts()){
$posts_inside->the_post();
// Display your posts in some maner.
}
echo get_next_posts_link('« Older Entries', $max_pages);
echo get_previous_posts_link('Newer Entries »', $max_pages);
}
}
Теперь нумерация страниц работает - вот в чем загвоздка - Она работает действительно неудачно. Поэтому я настроил его на отображение 5 сообщений на странице.
Поэтому, если я перейду по своей ссылке: http://localhost/wordpress/?page_id=1667
, я увижу свои 5 сообщений, а внизу две ссылки - одну для старых, одну для новых. Бут. Но если Я нажимаю на кнопку "Старые записи", чтобы вернуться, поэтому моя ссылка теперь выглядит так: http://localhost/wordpress/?page_id=1667&paged=2
Я вижу, что они были на второй странице, я могу перейти на одну страницу вперед и так далее - НО сообщения те же, они никогда не обновлялись.
Теперь регулярные запросы выполняются для получения конкретных сообщений на основе определенных параметров или даже просто обычного цикла WordPress - их разбивка на страницы работает должным образом, вы переходите на вторую страницу, вы получаете другой набор сообщений, чем на первой странице - вууу! - мы работаем.
Но на временной основе разбивка на страницы не работает.
Почему?
1 answers
Краткий ответ: Вы делаете один и тот же запрос независимо от того, на какой странице вы находитесь, но ожидаете другого результата.
Длинный ответ: Запрос должен отличаться для второй страницы, имея paged=2
, поэтому ваш запрос (и переходные процессы) с разбиением на страницы должен выглядеть так:
$paged_var = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
if ( get_transient( 'category_one_posts-' . $paged_var ) == false ) {
$posts_inside = new WP_Query(
array(
'cat' => 1,
'paged' => $paged_var
)
);
set_transient( 'category_one_posts-' . $paged_var, $posts_inside, 60*60*1 );
} else {
$posts_inside = get_transient( 'category_one_posts-' . $paged_var );
}
if ( $posts_inside->have_posts() ) {
while( $posts_inside->have_posts() ) {
$posts_inside->the_post();
// Display posts.
}
echo get_next_posts_link( __( 'Next', 'textdomain'), $posts_inside->max_num_pages );
echo get_previous_posts_link( __( 'Previous', 'textdomain'), $posts_inside->max_num_pages );
}