Я официально пропустил что-то о временных сообщениях

У меня нет проблем, создающих переходные процессы. У меня проблема с разбивкой по страницам – и я делал сообщения на ней раньше, и каждый из них утверждает, что запрос должен выглядеть, например:

$queried_post = array( 'post_type' => 'post', 'paged' => get_query_var( 'paged' ) ); 

Что тогда:

 $query = new WP_Query($queried_post); 

и хранится:

 set_transient('posts', $query, 60); // For testing purposes, we reset every 60 seconds. 

Итак, я делаю:

  gloabl $wp_query; $original = $wp_query; // Obviously you would do checks to see if the transient // exists. But lets assume it always exists. $wp_query = get_transient('posts'); if($wp_query->have_posts()){ while ($wp_query->have_posts()) { $wp_query->the_post(); // display content ... } var_dump($wp_query->max_num_pages); // Shows me: float 4 echo get_next_posts_link( __( 'Next', 'textdomain'), $wp_query->max_num_pages ); echo get_previous_posts_link( __( 'Previous', 'textdomain'), $wp_query->max_num_pages ); } $wp_query = $original; 

Я даже пытался все, что знаю, включая тестирование исходного запроса и разбиение на страницы, что работает отлично, я могу вернуться на 4 страницы и перейти к последнему. Таким образом, запрос, не заданный в переходном режиме, работает. Но настройка его в преходящем случае приводит к сбою страницы.

Зачем? Я не могу понять. Может кто-нибудь мне скажет?

Solutions Collecting From Web of "Я официально пропустил что-то о временных сообщениях"

Скажем, у вас 10 страниц сообщений, 10 сообщений на странице. Когда вы загружаете первую страницу, а переходный процесс еще не существует, ваш запрос загружает первую страницу (10 сообщений), и вы помещаете ее в переходный режим.

Теперь перейдите на страницу 2 и проверьте, существует ли переход. (вы устанавливаете его на стр. 1), поэтому вы загружаете это вместо запуска нового запроса. Кроме того, ваш переходный период по-прежнему содержит сообщения 1-10, а не 11-20, которые вы должны видеть на странице 2.

Вам нужно установить уникальный переходный ключ для каждой страницы сообщений, например:

 set_transient( 'posts_' . get_query_var( 'paged' ) , $query, 60); 

а затем забрать их по странице:

 get_transient( 'posts_' . get_query_var( 'paged' ) );