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(); ?>


