2

我有称为客户端的自定义帖子类型,需要在每页显示 5 个客户端并进行分页。我拥有的页面是 page-clients.php

我使用了 wp_pagenavi 插件。

我得到了一个完美的导航列表 1,2,3 等,但是点击它们后我会进入找不到页面

我的代码

$args = array(
  'posts_per_page' => 5,
  'post_type' => 'clients',
  'paged' => get_query_var('page')

);

query_posts($args); 

<?php while ( have_posts() ) : the_post(); ?>
.....
<?php endwhile; // end of the loop. ?>

<?php wp_pagenavi(); ?> 
<?php wp_reset_query();?>
4

2 回答 2

7

这是你可以在没有分页插件的情况下做到这一点的方法:) 使用WP_QUERY而不是query_posts

$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; // setup pagination

    $the_query = new WP_Query( array( 
        'post_type' => 'clients',
        'paged' => $paged,
        'posts_per_page' => 5) 
    );

    while ( $the_query->have_posts() ) : $the_query->the_post();
        echo '<div>' . get_the_title() . '</div>';
              the_content();
    endwhile;


    echo '<nav>';
    echo  '<div>'.get_next_posts_link('Older', $the_query->max_num_pages).'</div>'; //Older Link using max_num_pages
    echo  '<div>'.get_previous_posts_link('Newer', $the_query->max_num_pages).'</div>'; //Newer Link using max_num_pages
    echo "</nav>";


    wp_reset_postdata(); // Rest Data
于 2013-03-20T13:38:58.397 回答
4

分页赞 : Prev 1 2 3 Next

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$data= new WP_Query(array(
    'post_type'=>’YOUR_POST_TYPE’, // your post type name
    'posts_per_page' => 5, // post per page
    'paged' => $paged,
));

if($data->have_posts()) :
    while($data->have_posts())  : $data->the_post();
            // Your code
    endwhile;

    $total_pages = $data->max_num_pages;

    if ($total_pages > 1){

        $current_page = max(1, get_query_var('paged'));

        echo paginate_links(array(
            'base' => get_pagenum_link(1) . '%_%',
            'format' => '/page/%#%',
            'current' => $current_page,
            'total' => $total_pages,
            'prev_text'    => __('« prev'),
            'next_text'    => __('next »'),
        ));
    }
    ?>    
<?php else :?>
<h3><?php _e('404 Error&#58; Not Found', ''); ?></h3>
<?php endif; ?>
<?php wp_reset_postdata();?>

你能试试上面的代码吗?

于 2016-09-01T12:34:04.323 回答