Ich vermisse offiziell etwas über vorübergehende Posts

Ich habe kein Problem, Transienten zu erstellen. Worauf ich ein Problem habe, ist die Seitennummerierung – und ich habe schon einmal Beiträge darauf geschrieben und jeder sagt, dass die Abfrage so aussehen muss, zum Beispiel:

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

Was ist dann:

 $query = new WP_Query($queried_post); 

und gespeichert:

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

Also dann tue ich:

  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; 

Ich habe sogar alles versucht, was ich weiß, einschließlich des Testens der Originalabfrage und der Paginierung funktioniert das prima, ich kann wieder auf 4 Seiten paginieren und auf den neusten Stand bringen. Daher funktioniert die Abfrage, die nicht in einem Transient festgelegt ist. Wenn es jedoch vorübergehend eingerichtet wird, wird die Paginierung fehlschlagen …

Warum? Ich kann nicht herausfinden. Kann mir das jemand sagen?

Solutions Collecting From Web of "Ich vermisse offiziell etwas über vorübergehende Posts"

Angenommen, Sie haben 10 Seiten mit Posts, 10 Posts pro Seite. Wenn Sie die erste Seite laden und der Transient noch nicht vorhanden ist, lädt Ihre Abfrage die erste Seite (10 Posts), und Sie fügen diese in einem Transienten ein.

Jetzt navigieren Sie zu Seite 2 und prüfen, ob der Übergang vorhanden ist. (Sie legen es auf Seite 1 fest). Sie laden das also, anstatt eine neue Abfrage auszuführen. Außer Ihrem Transient enthält immer noch die Posts 1-10, nicht 11-20, die Sie auf Seite 2 sehen sollten.

Sie müssen einen eindeutigen transienten Schlüssel für jede Seite von Posts festlegen, etwa:

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

und dann holen Sie sie nach Seite:

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