Warning: getimagesize(https://www.saggiorodavide.it/wp-content/uploads/2019/05/student-849825_1920.jpg): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /home/davidesa/public_html/wp-content/plugins/easy-social-share-buttons3/lib/modules/social-share-optimization/class-opengraph.php on line 611
Creare paginazione custom - Saggioro Davide - fullstack developer

Creare paginazione custom

Creare paginazione custom 2
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(); ?>

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *