Wordpress帖子查询不起作用

时间:2017-11-27 22:18:01

标签: php wordpress wordpress-theming

我正在尝试找出一种方法来为自定义查询制作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( '&larr;' ),
            'next_text' => esc_html( '&rarr;' ),
            ) ); 
?>   
<?php wp_reset_query(); // reset the query ?>

1 个答案:

答案 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