我正在尝试找出一种方法来对自定义查询进行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 ?>
#1
为了做到这一点, 你需要执行一些步骤, 首先, 我建议你使用wp-pagenavi插件, 它可以为你处理很多事情。
无论如何, 无论使用插件还是不使用插件, 我都对这两种方法进行了说明, 首先我们编写查询并根据分页查询var设置分页属性, 因此当用户导航至第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()函数本身与上述相同的参数一起使用。
另请参阅:此答案
#2
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array('post_type' => 'post', 'order' => 'ASC', 'paged' => $paged, 'posts_per_page' => 12 ));
if( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php the_title();?>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<div class="pagination"><?php my_pagination(); ?></div>
<?php endif; ?>
<?php wp_reset_query(); ?>
在你的functions.php中添加,
if ( ! function_exists( 'my_pagination' ) ) :
function my_pagination() {
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages
) );
}
endif;
或尝试以下操作:http://www.wpbeginner.com/wp-themes/how-to-add-numeric-pagination-in-your-wordpress-theme/
评论前必须登录!
注册