如何获得特定数量的帖子从一个特定的post类型与分页在wordpress


How to get specific number of posts from a particular post-type with pagination in wordpress

我创建了post类型grammer和命名为subject的分类法。grammer中有近220个职位。

现在我希望从后类型grammer中检索仅25个帖子,其中taxonomy => 'subject'和它的段塞值是level-1-beginner

这些结果应该每页只有一个帖子。

我尝试使用WP_Query,但似乎我不能限制获取的帖子总数。

$args = array (
'post_type'              => 'grammer',
'post_status'            => 'Published',
'tax_query' => array(
    array(
        'taxonomy' => 'subject',
        'field' => 'slug',
        'terms' => 'level-1-beginner'
    )
),
'pagination'             => false,
'paged'                  => '1',
'posts_per_page'         => '1',
'order'                  => 'ASC',
'orderby'                => 'rand');
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
    $query->the_post();
    echo the_content();
}
} else {
// no posts found
} ?>
<div class="tl-pagination"><?php wp_pagenavi(); ?></div>

如有任何帮助,不胜感激。

Thansks .

您可以尝试使用分页链接,代码看起来像这样:

<?php if($query->max_num_pages > 1) : ?>
    <?php previous_posts_link('&laquo; Previous Posts') ?>
    <?php next_posts_link('More Posts &raquo;', ($query->max_num_pages > 25) ? 25 : $query->max_num_pages) ?>
    <?php
            $big = 9999999999;
            $args = array(
                'base'          => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                'format'        => '?paged=%#%',
                'current'       => max( 1, get_query_var('paged') ),
                'total'         => ($query->max_num_pages > 25) ? 25 : $query->max_num_pages,
                'end_size'      => 0,
                'mid_size'      => 2,
                'prev_next'     => False
            ); 
            echo paginate_links($args); 
    ?>
<?php endif; ?>

total参数将显示的页面数量限制为25。next_posts_link()函数还有一个可以设置的最大页面数参数。

你必须样式CSS显示哪个页面是活动的。每个页码有2类:

page-numbers,如果是当前页面:current,那么你需要相应地设置它们的样式。