【问题标题】:Pagination not working while using custom query使用自定义查询时分页不起作用
【发布时间】:2020-07-18 05:45:21
【问题描述】:

我有一个网站,在主页上我显示了网站的所有帖子,但现在要求显示除 3 个类别之外的所有帖子,但是当我相应地更新我的 WP_Query 时,现在分页开始循环显示帖子,所以现在我在一页中显示 12 个帖子,所以在 12 个帖子之后它会从第一个帖子重复,所以一个(现在我的分页与无限滚动链接,但即使我禁用无限滚动,并切换到正常分页,问题依然存在。

以下是我的自定义查询

      $fullquery = new WP_Query( 'cat=-12,-34,-56' );
      while ($fullqury->have_posts()) : $fullqury->the_post();

下面是我的分页代码

     <?php 
         $big = 999999999; // need an unlikely integer
                        
         echo paginate_links( array(
         'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
         'format' => '?paged=%#%',
         'current' => max( 1, get_query_var('paged') ),
         'total' => $fullquery->max_num_pages
         ) );
         ?> 

【问题讨论】:

    标签: php wordpress pagination


    【解决方案1】:

    试试这个 我没有使用 WP 原生分页。 其实我清空了pagination.php中的代码

    在您的 template.php 中,您要放置分页的位置

    <div class="row">
      <div class="col-md-12">
         <div class="pagination">
           <?php pagination_bar( $loop ); ?>
         </div>
      </div>
    </div>
    

    在循环中的同一模板中添加:

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

    在你的function.php(主题子)中

    // Pagination 
    function pagination_bar( $custom_query ) {
    
        $total_pages = $custom_query->max_num_pages;
        $big = 999999999;
    
        if ($total_pages > 1){
            $current_page = max(1, get_query_var('paged'));
    
            echo paginate_links(array(
                'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                'format' => '?paged=%#%',
                'current' => $current_page,
                'total' => $total_pages,
            ));
        }
    }
    // END Pagination
    

    对我有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 2015-05-09
      相关资源
      最近更新 更多