Skip to main content

How to get posts with pagination in wordpress?

<?php

 // Register Custom Post Type
function schedule_post_type() {

 $labels = array(
  'name'                  => _x( 'schedule', 'Post Type General Name', 'text_domain' ),
  'singular_name'         => _x( 'schedule', 'Post Type Singular Name', 'text_domain' ),
  'menu_name'             => __( 'schedule', 'text_domain' ),
  'name_admin_bar'        => __( 'schedule', 'text_domain' ),
  'archives'              => __( 'Item Archives', 'text_domain' ),
  'attributes'            => __( 'Item Attributes', 'text_domain' ),
  'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
  'all_items'             => __( 'All Items', 'text_domain' ),
  'add_new_item'          => __( 'Add New Item', 'text_domain' ),
  'add_new'               => __( 'Add New', 'text_domain' ),
  'new_item'              => __( 'New Item', 'text_domain' ),
  'edit_item'             => __( 'Edit Item', 'text_domain' ),
  'update_item'           => __( 'Update Item', 'text_domain' ),
  'view_item'             => __( 'View Item', 'text_domain' ),
  'view_items'            => __( 'View Items', 'text_domain' ),
  'search_items'          => __( 'Search Item', 'text_domain' ),
  'not_found'             => __( 'Not found', 'text_domain' ),
  'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
  'featured_image'        => __( 'Featured Image', 'text_domain' ),
  'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
  'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
  'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
  'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
  'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
  'items_list'            => __( 'Items list', 'text_domain' ),
  'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
  'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
 );
 $args = array(
  'label'                 => __( 'schedule', 'text_domain' ),
  'description'           => __( 'Post Type Description', 'text_domain' ),
  'labels'                => $labels,
  'supports'              => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
  'taxonomies'            => array( 'category', 'post_tag' ),
  'hierarchical'          => false,
  'public'                => true,
  'show_ui'               => true,
  'show_in_menu'          => true,
  'menu_position'         => 5,
  'show_in_admin_bar'     => true,
  'show_in_nav_menus'     => true,
  'can_export'            => true,
  'has_archive'           => true,
  'exclude_from_search'   => true,
  'publicly_queryable'    => true,
  'capability_type'       => 'page',
 );
 register_post_type( 'schedule', $args );

}
add_action( 'init', 'schedule_post_type', 0 );




//Get posts and custon fields with pagination

function schedule_timing_peg(){

?>


<style>
.js_container {
    width: 80%;
    display: block;
    margin: auto;
font-family:montserrat;
}
.schedule_container {
    width: 32%;
    background: #252424;
    border: 1px solid black;
    padding: 22px 0px;
    border-radius: 8px;
    min-height: 361px;
    margin: 7px 5px;
    display: inline-table;
}
.shedule_heading {
    width: 50%;
    color: red;
    font-size: 25px;
    text-align: left;
    font-weight: 700;
    display: inline-block;
}
.shedule_timing {
    width: 50%;
    color: red;
    font-size: 25px;
    text-align: right;
    font-weight: 700;
    display: inline-block;
}
.shedule_heading_container {
    border-bottom: 1px solid white;
    margin: 0px 22px;
}
.row:nth-of-type(odd) {
    background: #0A0A0A;
}
.row:nth-of-type(even) {
    margin:5px 0px;
}
.shedule_vs {
    color: white;
    font-size: 17px;
    padding: 5px 17px;
}
.row {
    padding: 0px 6px;

}
</style>

<div class="js_container">

<?php


   $args = array( 
   'posts_per_page' => 6,
        'post_type' => 'schedule',
        'post_status' => 'publish',
 'paged' => get_query_var('paged') ? get_query_var('paged') : 1,

    );


    $loop = new WP_Query( $args );
       
    while ( $loop->have_posts() ) : $loop->the_post();
         //the_title();
 //get_the_date('g/j');
       // the_excerpt();
  ?>
 

<div class="schedule_container">
  <div class="shedule_heading_container">
<div Class="shedule_heading"><?php echo the_title(); ?></div><div Class="shedule_timing"><?php echo get_the_date('m/j'); ?></div>
</div>
<?php $meta = get_post_custom(); ?>
<?php foreach ( $meta as $key => $value) { ?>
  <?php if(substr($key, 0, 1) !== '_'): ?>
    <?php  $key.': '.$value[0].'<br />'; ?>

<div class="row">
<div Class="shedule_vs"><?php echo $key.': '.$value[0]; ?></div>
</div>  
 
  <?php endif; ?>
<?php } ?>   
 
</div>

 
   <?php
    endwhile;

$big = 999999999; // need an unlikely integer
echo paginate_links( array(
    'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $loop->max_num_pages
) );

    wp_reset_postdata();

?>

</div>

<?php
}
add_shortcode('schedule-timing-peg','schedule_timing_peg');



//Paste it where you want

<?php


echo do_shortcode('[schedule-timing-peg]');


?>

Comments

Popular posts from this blog

How to check date format in PHP?

Check date format in PHP function isCorrectDateFromat($date){     if(!empty($date)){         $dateString = $date; // Replace this with your date string         $format = "Y-m-d"; // Replace this with your expected date format         $dateTime = DateTime::createFromFormat($format, $dateString);         if ($dateTime === false) { /*             echo "The date is not in the correct format."; */         } else {             $errors = DateTime::getLastErrors();             if (empty($errors)) { /*                 echo "The date is in the correct format."; */                 return true;             } else { /*                 echo "...