24 July 2020

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]');


?>

No comments:

Post a Comment

How to create youtube videos slider with play and pause option in wordpress?

Create youtube videos slider with play and pause option in wordpress youtube videos slider Use this shortcode:- [punjab_today] function my_...