Pagination for my custom post type in widget

2019-06-13 23:51发布

I have displayed the custom post type in the widget. Now i want to add pagination in the last. because i have more than 10 posts in my custom post type.

<ul class="posts-list">
<?php if (have_posts()) : ?>
<?php

global $post;
    $cats = get_the_category();
    $cat_name = $cats[0]->name;
    $args = array(
    'posts_per_page'   => 10,
    'offset'           => 0,
    'category'         => $cat_name,
    'orderby'          => 'post_date',
    'order'            => 'DESC',
    'post_status'      => 'publish',
    'suppress_filters' => true );

$previous_post = get_posts($args);
foreach ( $previous_post as $post ) : 
  setup_postdata( $post ); ?>
    <li>
        <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
        <p>posted on <?php the_time(' F jS, Y') ?> by <?php the_author(); ?></p>
        <p>Posted in <?php echo $cat_name->name; $cat_name = get_the_category($post->ID); ?></p>    
    </li>
<?php endforeach;
wp_reset_postdata(); ?>
<?php endif; ?>
</ul>

1条回答
Animai°情兽
2楼-- · 2019-06-14 00:20

Try this one and enter your custom post type's name in 'post_type' => 'your custom post type name'

<ul class="posts-list">
<?php if (have_posts()) : ?>
<?php

global $post;
$paged1 = isset( $_GET['paged1'] ) ? (int) $_GET['paged1'] : 1;
    $cats = get_the_category();
    $cat_name = $cats[0]->name;
    $args = array(
    'posts_per_page'   => 10,
    'offset'           => 0,
    'category'         => $cat_name,
    'orderby'          => 'post_date',
    'paged'          => $paged1,
    'post_type' => 'your custom post type name'
    'order'            => 'DESC',
    'post_status'      => 'publish',
    'suppress_filters' => true );

$previous_post = get_posts($args);
foreach ( $previous_post as $post ) : 
  setup_postdata( $post ); ?>
    <li>
        <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
        <p>posted on <?php the_time(' F jS, Y') ?> by <?php the_author(); ?></p>
        <p>Posted in <?php echo $cat_name->name; $cat_name = get_the_category($post->ID); ?></p>    
    </li>
<?php endforeach;
?>
<?php endif; 

$pag_args1 = array(
    'format'   => '?paged1=%#%',
    'current'  => $paged1,
    'total'    => $previous_post->max_num_pages,
    'add_args' => array( 'paged1' => $paged1 )
);
echo paginate_links( $pag_args1 );
 wp_reset_postdata();  ?>

</ul>
查看更多
登录 后发表回答