In questo articolo troverete il codice php per creare la paginazione dei post di wordpress da una wp_query
La funzione custom_pagination() va nel functions.php
function custom_pagination($numpages = '', $pagerange = '', $paged='') { if (empty($pagerange)) { $pagerange = 2; } /** * Questa prima parte della nostra funzione è una fallback * per l'impaginazione personalizzata all'interno di un ciclo senza wp_query custom * utilizza le variabili globali $paged e $wp_query. * * Ora possiamo ignorare l'impaginazione predefinita del nostro tema * e utilizzare la paginazione per query personalizzate. */ global $paged; if (empty($paged)) { $paged = 1; } if ($numpages == '') { global $wp_query; $numpages = $wp_query->max_num_pages; if(!$numpages) { $numpages = 1; } } /** * We construct the pagination arguments to enter into our paginate_links * function. */ $pagination_args = array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'total' => $numpages, 'current' => $paged, 'show_all' => False, 'end_size' => 1, 'mid_size' => $pagerange, 'prev_next' => True, 'prev_text' => __('«'), 'next_text' => __('»'), 'type' => 'plain', 'add_args' => false, 'add_fragment' => '' ); $paginate_links = paginate_links($pagination_args); if ($paginate_links) { echo "<nav class='c-pagination__custom'>"; echo $paginate_links; echo "</nav>"; } }
$paged=(get_query_var('paged'))?get_query_var('paged'):1;
Questa è importante perchè va a leggere dalla query a che numero della paginazione siamo.
Tutto il codice sotto va inserito dove volete usare i post con la paginazione.
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $query_post = new WP_Query(array( 'post_type' => 'post', 'post__not_in' => array( $post->ID ), 'posts_per_page' => 2, 'orderby' => 'menu_order', )); ?> <?php if ($query_post->have_posts()) : ?> <?php while ($query_post->have_posts()) : $query_post->the_post(); $url = get_the_post_thumbnail_url( $post->ID, 'image-medium' ); $category_name = get_the_category($post->ID);//$post->ID ?> <li class="c-articles-list__item"> <div class="c-articles-list__image" style="background-image:url(<?php echo $url;?>)"></div> <div class="c-articles-list__text"> <div class="c-articles-list__title-container"> <p class="u-text-azure"><?php the_date();?></p> <h2 class="c-articles-list__title"><?php the_title(); ?></h2> <h4 class="c-articles-list__subtitle"><?php echo get_field('sottotitolo'); ?></h4> </div> <p class="c-articles-list__excerpt"><?php the_excerpt();?></p> </div> <a href="<?php the_permalink();?>" class="c-button"> Leggi di più </a> </li> <?php endwhile;?> <?php endif;?> <!-- pagination here --> <?php if (function_exists(custom_pagination)) { custom_pagination($query_post->max_num_pages,"",$paged); } ?> <?php wp_reset_postdata(); ?>