Support » Allgemeine Fragen » Paginierung überschreibt individuell gesetzte query args

  • Gelöst winnewoerp

    (@joschi81)


    Hallo allerseits,

    ich habe unten stehenden Code in der index.php meines Themes. Allerdings werden die $args von $query_string[0] und $query_string[1] durch die Query-Variable ‚paged‘ irgendwie überschrieben und auf seite 2 ist es nicht so, wie es sein soll (es soll immer oben groß der erste Beitrag stehen, darunter kleiner die paginierte Liste). Hat jemand eine Idee, woran das liegt?

    <?php
    		if ( have_posts() ) {
    
    			if ( is_home() && ! is_front_page() ) { ?>
    				<header>
    					<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
    				</header>
    
    			<?php
    			}
    			
    			$page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
    			$offset = ( $page - 1 ) * get_option('posts_per_page') + 1;
    			
    			$query_string[0] = array(
    				'posts_per_page' => 1,
    			);
    			$query_string[1] = array(
    				'paged' => 'paged',
    				'offset' => $offset
    			);
    			$index_query = array(
    				'recent-post' => new WP_Query($query_string[0]),
    				'older-posts' => new WP_Query($query_string[1])
    			);
    			$first = true;
    			foreach($index_query as $key => $single_index_query ) {
    			?>
    				<div class="post-list <?php echo $key; ?>">
    			<?php
    				while($single_index_query->have_posts()) {
    					$single_index_query->the_post();
    					global $post;
    				
    					get_template_part( 'template-parts/content', get_post_format() );
    
    Danke und viele Grüße
    joschi81
    
    				}
    				?>
    				</div>
    				<?php
    				if(!$first) the_posts_navigation();
    				wp_reset_postdata();
    				$first = false;
    			}
    		
    			
    
    		} else {
    
    			get_template_part( 'template-parts/content', 'none' );
    
    		} ?>
    • Dieses Thema wurde geändert vor 4 Jahre, 11 Monaten von winnewoerp.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 1 Antwort (von insgesamt 1)
  • Thread-Starter winnewoerp

    (@joschi81)

    Gelöst, ich habe einfach einen anderen Weg gewählt:

    if ( have_posts() ) :
    
    			if ( is_home() && ! is_front_page() ) : ?>
    				<header>
    					<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
    				</header>
    
    			<?php
    			endif;
    			if(!get_query_var( 'paged' )) { ?>
    				<div class="post-list recent-post">
    			<?php
    				$post = get_post();
    				
    				get_template_part( 'template-parts/content', get_post_format() );
    				wp_reset_postdata;
    				
    				global $post; ?>
    				</div>
    			<?php
    			}
    			?>
    			<div class="post-list older-posts">
    			<?php
    			
    			$page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
    			$offset = ( $page - 1 ) * get_option('posts_per_page') + 1;
    			
    			$query_string = array(
    				'offset' => $offset
    			);
    			$second_query = new WP_Query($query_string);
    
    			/* Start the Loop */
    			while ( $second_query->have_posts() ) : $second_query->the_post();
    
    				/*
    				 * Include the Post-Format-specific template for the content.
    				 * If you want to override 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( 'template-parts/content', get_post_format() );
    
    			endwhile;
    			?>
    			</div>
    			<?php
    
    			the_posts_navigation();
    
    		else :
    
    			get_template_part( 'template-parts/content', 'none' );
    
    		endif;
Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Paginierung überschreibt individuell gesetzte query args“ ist für neue Antworten geschlossen.