我正在尝试找出一种方法来为自定义查询制作the_posts_pagination或任何其他输出数字帖子导航。
但它似乎不起作用,我不知道我做错了什么会提前感谢建议和解决方案
我的代码
<?php global $query_string; // required
$posts = query_posts($query_string.'&posts_per_page=3&order=ASC'); ?>
<div class="main-post-loop">
<div class="big-thum-section img-is-responsive">
<?php if ( has_post_thumbnail() ) : ?>
<?php the_post_thumbnail('small-block-thumb'); ?>
<?php endif; ?>
</div>
<div class="squiggle-post-meta-section clearfix">
<h2><a href="<?php echo get_permalink(); ?>"> <?php the_title(); ?> </a></h2>
<div class="excerpt-post"><?php the_excerpt(); ?></div>
</div>
<div class="continue-reading-section">
<a href="<?php echo get_permalink(); ?>" class="cont-reading"> Continue reading <i class="fa fa-chevron-right"></i></a>
</div>
<div class="squiggly-line"></div>
</div>
<?php
the_posts_pagination( array(
'mid_size' => 2,
'prev_text' => esc_html( '←' ),
'next_text' => esc_html( '→' ),
) );
?>
<?php wp_reset_query(); // reset the query ?>
答案 0 :(得分:1)
为了做到这一点,你需要做几个步骤,首先我建议你使用wp-pagenavi插件,它会为你处理很多事情。
无论如何,无论有没有插件,我都会解释两种方式,
首先我们编写查询并根据paged
查询var设置paged
属性,因此当用户导航到例如页面3
时,查询会过滤帖子并显示第三页帖子:
$paged = (int) ( get_query_var( 'paged' ) ?: ( get_query_var( 'page' )?: 1 ) );
$my_query = new WP_Query( array(
'posts_per_page' => 10,
'paged' => $paged // This is important for pagination links to work
) );
现在,如果您决定使用wp-pagenavi
插件,使用自定义查询进行分页很容易,您需要做的就是:
<?php if( function_exists('wp_pagenavi') ) wp_pagenavi( array( 'query' => $my_query ) ); ?>
但是如果你想使用the_posts_pagination()函数,我不确定它是否支持自定义查询,但由于它使用paginate_links()函数,它应该使用这个参数
$args = array(
'current' => max( 1, $paged ), // $paged is what we defined earlier or you can use just get_query_var('paged')
'total' => $my_query->max_num_pages
)
如果没有,您可以使用paginate_links()函数本身使用相同的参数。
另请参阅:this answer