Style zuerst 3 Beiträge anders und verwenden Sie eine zweite Schleife, um Rest der Beiträge / Offset und Seitenumbruch gebrochen

Ich arbeite an einem Thema und ich habe Probleme mit Schleifen / Seitenumbruch bei Verwendung eines Offest. Ich schaute online und versuchte, nur 1 Schleife ( pro Beitrag ) zu verwenden, aber ich habe Probleme damit es funktioniert.

Ich möchte, dass die ersten drei Beiträge oben auf der Seite die neuesten (Post 1-3) sind, und dann die unteren drei Beiträge als nächste drei (Post 4-6), wenn Sie auf die gewünschte Seitennummerierung klicken Es ist an der Spitze (Post 1-3) und Posts (7-9).

Im Moment funktioniert der Code dort, wo er auf der ersten Seite richtig angezeigt wird, aber wenn ich auf die Seitennummer “zurück” klicke, werden auf jeder vorherigen Seite genau die gleichen 6 Posts angezeigt.

Siehe meinen Code für meine Indexseite unten:

 
'3', ); $query = new WP_query ( $args ); if ( $query->have_posts() ) { ?> have_posts() ) : $query->the_post(); /* start the loop */ ?>
<article id="post-" > <a href="https://wordpress.stackexchange.com/questions/253631/style-first-3-posts-differently-and-use-a-2nd-loop-to-get-rest-of-posts-offset/">
<?php the_title( sprintf( '

', esc_url( get_permalink() ) ), '

' ); ?>

Wenn ich versuche, die PHP-Alternativsyntax für Kontrollstrukturen zu verwenden, scheint es den Code zu durchbrechen und die ganze Seite wird weiß.

Fügen Sie auch den Navigationscode hinzu:

 if ( ! function_exists( '_tk_content_nav' ) ) : /** * Display navigation to next/previous pages when applicable */ function _tk_content_nav( $nav_id ) { global $wp_query, $post; // Don't print empty markup on single pages if there's nowhere to navigate. if ( is_single() ) { $previous = ( is_attachment() ) ? get_post( $post->post_parent ) : get_adjacent_post( false, '', true ); $next = get_adjacent_post( false, '', false ); if ( ! $next && ! $previous ) return; } // Don't print empty markup in archives if there's only one page. if ( $wp_query->max_num_pages  <nav role="navigation" id="" class=""> 

    <?php previous_post_link( '', '' . _x( '←', 'Previous post link', '_tk' ) . ' %title' ); ?> <?php next_post_link( '', '%title ' . _x( '→', 'Next post link', '_tk' ) . '' ); ?> max_num_pages > 1 && ( is_home() || is_archive() || is_search() ) ) : // navigation links for home, archive, and search pages ?>
<!-- # --> <?php } endif; // _tk_content_nav

Solutions Collecting From Web of "Style zuerst 3 Beiträge anders und verwenden Sie eine zweite Schleife, um Rest der Beiträge / Offset und Seitenumbruch gebrochen"

Mein Rat wäre, nie query_posts . Verwenden Sie stattdessen eine benutzerdefinierte Abfrage oder den pre_get_posts Hook für beide Instanzen, und stellen Sie sicher, dass Sie wp_reset_postdata nach der benutzerdefinierten Abfrage aufrufen.

ABER wenn Ihre Nav-function auf die global $wp_query , müssten Sie query_posts die den paged Parameter an sie übergeben.

 < ?php get_header(); ?> 
< ?php $args = array( 'posts_per_page' => '3', ); $query = new WP_query ( $args ); if ( $query->have_posts() ) { ?> < ?php while ( $query->have_posts() ) : $query->the_post(); /* start the loop */ ?>
< ?php // End the loop. endwhile; wp_reset_postdata(); } ?>
< ?php $paged = ( get_query_var('page') ) ? get_query_var('page') : 1; $second_args = array( 'posts_per_page' => 3, 'offset' => 3, 'paged' => $paged ); query_posts($second_args); if ( have_posts() ) : ?> < ?php /* Start the Loop */ ?> < ?php while ( have_posts() ) : the_post(); ?> < ?php /* Include the Post-Format-specific template for the content. * If you want to overload this in a child theme then include a file * called content-___.php (where ___ is the Post Format name) and that will be used instead. */ get_template_part( 'content', get_post_format() ); ?> < ?php endwhile; wp_reset_postdata(); ?> < ?php _tk_content_nav( 'nav-below' ); ?> < ?php else : ?> < ?php get_template_part( 'no-results', 'index' ); ?> < ?php endif; ?> < ?php get_footer(); ?>