Un utente ha chiesto
Categoria: Twenty Nineteen di WordPress
Domanda: Ventinove modelli di impaginazione personalizzati

Buongiorno,
Sto creando un modello personalizzato per una pagina utilizzando un bambino di ventinove anni. La query personalizzata funziona e se imposto la lunghezza della pagina su un valore inferiore al numero di post, per attivare l’impaginazione, viene visualizzata l’impaginazione. Il problema è che quando si fa clic sulla pagina successiva l’URL va alla pagina 2 ma il contenuto della pagina non cambia.

<?php
/*
Template Name: Skils

*/
get_header();
?>

	<section id="primary" class="content-area">
		<main id="main" class="site-main">

			<?php
/*Page loop*/
			/* Start the Loop */
			while ( have_posts() ) :
				the_post();

				get_template_part( 'template-parts/content/content', 'page' );

				// If comments are open or we have at least one comment, load up the comment template.
				if ( comments_open() || get_comments_number() ) {
					comments_template();
				}

			endwhile; // End of the loop.
/*End page loop*/

/*Post loop*/			
			     // Define custom query parameters
                    $custom_query_args = array('category_name' => 'how_to', 'posts_per_page' => 2);
					
                 // Instantiate custom query
                 $custom_query = new WP_Query( $custom_query_args );

                 // Pagination fix
                 $temp_query = $wp_query;
                 $wp_query   = NULL;
                 $wp_query   = $custom_query;
				 
//print_r($custom_query);

                 // Output custom query loop
                if ( $custom_query->have_posts() ) :
                     while ( $custom_query->have_posts() ) :
                        $custom_query->the_post();
                        // Loop output goes here
		                get_template_part( 'template-parts/content/content' );
                     endwhile;
	

                endif;

            // Reset postdata
            wp_reset_postdata();

			// Previous/next page navigation.
			twentynineteen_the_posts_navigation();
			
             // Reset main query object
             $wp_query = NULL;
             $wp_query = $temp_query;
			 
/*End post loop*/

			?>

		</main><!-- #main -->
	</section><!-- #primary -->	
<?php
get_footer();

Ho usato print_r per vedere il contenuto di $ custom_query e viene visualizzato il numero corretto di pagine ma vengono visualizzati i contenuti dei primi due post. Se modifico il numero di pagina in -1, viene visualizzato tutto il contenuto della pagina.

grazie

marca

  • (@bnewtoncouk)

    Non testato. Ma, penso che funzionerà per te:

    (nota bene: ho commentato le righe che ho aggiunto per te)

    <?php
    /*
    Template Name: Skils
    
    */
    get_header();
    ?>
    
    	<section id="primary" class="content-area">
    		<main id="main" class="site-main">
    
    			<?php
    /*Page loop*/
    			/* Start the Loop */
    			while ( have_posts() ) :
    				the_post();
    
    				get_template_part( 'template-parts/content/content', 'page' );
    
    				// If comments are open or we have at least one comment, load up the comment template.
    				if ( comments_open() || get_comments_number() ) {
    					comments_template();
    				}
    
    			endwhile; // End of the loop.
    /*End page loop*/
    
    /*Post loop*/			
    			     // Define custom query parameters
    				 
    					/* THE BELOW LINE IS A NEW ADDITION */
    					$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
    					
                        $custom_query_args = array(
    						'category_name' => 'how_to', 
    						'posts_per_page' => 2,
    					/* THE BELOW LINE IS A NEW ADDITION */
    						'paged' => $paged
    					);
    					
                     // Instantiate custom query
                     $custom_query = new WP_Query( $custom_query_args );
    
                     // Pagination fix
                     $temp_query = $wp_query;
                     $wp_query   = NULL;
                     $wp_query   = $custom_query;
    				 
    //print_r($custom_query);
    
                     // Output custom query loop
                    if ( $custom_query->have_posts() ) :
                         while ( $custom_query->have_posts() ) :
                            $custom_query->the_post();
                            // Loop output goes here
    		                get_template_part( 'template-parts/content/content' );
                         endwhile;
    	
    
                    endif;
    
                // Reset postdata
                wp_reset_postdata();
    
    			// Previous/next page navigation.
    			twentynineteen_the_posts_navigation();
    			
                 // Reset main query object
                 $wp_query = NULL;
                 $wp_query = $temp_query;
    			 
    /*End post loop*/
    
    			?>
    
    		</main><!-- #main -->
    	</section><!-- #primary -->	
    <?php
    get_footer();

    (@cankanak)

    Salve, sono un utente alle prime armi. L’ho incollato nel page.php (template Venti diciannove). Ma non funziona. C’è qualcosa da fare? Grazie mólto

Hai risolto il tuo problema?

0 / 0

Lascia un commento 0

Il tuo indirizzo email non sarà pubblicato. Required fields are marked *