Advertisement
martawijaya

Custom pagination

Jul 22nd, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.88 KB | None | 0 0
  1.                 <div class="row">
  2.                     <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 list-blog">
  3.                         <?php
  4.                           $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
  5.  
  6.                           $args = array(
  7.                             'post_type'       => 'post',
  8.                             'posts_per_page'  => 4,
  9.                             'paged' => $paged,
  10.                           );
  11.                           $query = new WP_Query( $args );
  12.                           $index = 0;
  13.                           if( $query->have_posts() ) {
  14.                             ?>
  15.                             <div class="row infinte-post">
  16.                                 <?php
  17.                                     while( $query->have_posts() ) {
  18.                                       $query->the_post();
  19.                                       $class = 'col-xl-3 col-lg-6 col-md-6 col-sm-12 col-12 post-item-inf';
  20.  
  21.                                       if( $index == 0 ) {
  22.                                         $class = 'col-xl-3 col-lg-6 col-md-6 col-sm-12 col-12 post-item-inf';
  23.                                       }
  24.  
  25.                                       $low_thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail' );
  26.                                       $thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' );
  27.                                       $alt = get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true);
  28.  
  29.                                       $title = get_the_title();
  30.                                       $category = get_the_category()[0]->name;
  31.                                       $thumbnails = $thumbnail[0];
  32.                                       $allcat = get_the_category();
  33.  
  34.                                       $allcatarray = [];
  35.                                       foreach ($allcat as $categori) {
  36.                                         $allcatarray[] = $categori->name;
  37.                                       }
  38.                                       ?>
  39.                                         <div class="<?php echo $class; ?> <?php echo $index; ?>">
  40.                                           <a href="<?php echo get_permalink(); ?>">
  41.                                             <div class="thumb lazy-wrapper">
  42.                                               <img src="<?php echo $thumbnails; ?>" data-src="<?php echo $thumbnails; ?>" alt="<?php echo $alt; ?>" class="lazyload">
  43.                                             </div>
  44.                                             <div class="content">
  45.                                               <div class="meta">
  46.                                                 <label class="category"><?php echo implode(", ", $allcatarray); ?></label>
  47.                                                 <h2><?php echo $title; ?></h2>
  48.                                               </div>
  49.                                               <p class="permalink">Read</p>
  50.                                             </div>
  51.                                           </a>
  52.                                         </div>
  53.                                       <?php
  54.                                       $index++;
  55.                                     }
  56.  
  57.                             ?>
  58.                             </div><!-- end-div -->
  59.                                 <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
  60.                                     <!-- status elements -->
  61.                                     <div class="scroller-status">
  62.                                       <div class="infinite-scroll-request loader-ellips">
  63.                                         <div class="LoaderBalls">
  64.                                             <div class="LoaderBalls__item"></div>
  65.                                             <div class="LoaderBalls__item"></div>
  66.                                             <div class="LoaderBalls__item"></div>
  67.                                         </div>
  68.                                       </div>
  69.                                       <p class="infinite-scroll-last"></p>
  70.                                       <p class="infinite-scroll-error">No more pages to load</p>
  71.                                     </div>
  72.  
  73.                                     <div class="row">
  74.                                         <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 arc-nav">
  75.                                             <?php
  76.                                             if (function_exists( 'custom_pagination' )) :
  77.                                                 custom_pagination( $query->max_num_pages,"",$paged );
  78.                                             endif;
  79.                                             ?>
  80.                                         </div>
  81.                                     </div>
  82.                                 </div>
  83.                             <?php
  84.                             wp_reset_postdata();                       
  85.                           }
  86.                         ?> 
  87.                 </div> 
  88.  
  89.  
  90. <?php
  91.  
  92. function custom_pagination( $numpages = '', $pagerange = '', $paged='' ) {
  93.  
  94.   if (empty($pagerange)) {
  95.     $pagerange = 2;
  96.   }
  97.  
  98.   /**
  99.    * This first part of our function is a fallback
  100.    * for custom pagination inside a regular loop that
  101.    * uses the global $paged and global $wp_query variables.
  102.    *
  103.    * It's good because we can now override default pagination
  104.    * in our theme, and use this function in default queries
  105.    * and custom queries.
  106.    */
  107.   global $paged;
  108.   if (empty($paged)) {
  109.     $paged = 1;
  110.   }
  111.   if ($numpages == '') {
  112.     global $wp_query;
  113.     $numpages = $wp_query->max_num_pages;
  114.     if(!$numpages) {
  115.         $numpages = 1;
  116.     }
  117.   }
  118.  
  119.   /**
  120.    * We construct the pagination arguments to enter into our paginate_links
  121.    * function.
  122.    */
  123.   $pagination_args = array(
  124.     'base'            => get_pagenum_link(1) . '%_%',
  125.     'format'          => 'page/%#%',
  126.     'total'           => $numpages,
  127.     'show_all'        => False,
  128.     'end_size'        => 1,
  129.     'mid_size'        => $pagerange,
  130.     'prev_next'       => True,
  131.     'prev_text'       => __('Previos page'),
  132.     'next_text'       => __('Next page'),
  133.     'type'            => 'plain',
  134.     'add_args'        => false,
  135.     'add_fragment'    => ''
  136.   );
  137.  
  138.   $paginate_links = paginate_links($pagination_args);
  139.  
  140.   if ($paginate_links) {
  141.     echo "<nav class='custom-pagination'>";
  142.       echo $paginate_links;
  143.     echo "</nav>";
  144.   }
  145.  
  146. }
  147.  
  148. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement