Wordpress自定义循环分页


Wordpress custom loop pagination

我在多个循环结构中编码了自定义循环:

$q = get_posts( $args );
// Run your loop
echo '<div class="row">';
$i = 0; 
foreach ( $q as $post ) : setup_postdata( $post );
  $i++; 
  if ($i%4==0)
    echo '</div><div class="row">';
  get_template_part('loop');
endforeach;
wp_bs_pagination();
wp_reset_postdata();

除了我添加了CCD_ 1以加载分页之外。它只在每一页上重复相同的一组帖子。有什么建议吗?

不要将get_posts()用于分页查询。get_posts适用于非分页查询,但不适用于分页查询。

问题是,get_posts只从WP_Query返回$posts属性,而不是完整的对象。此外,get_posts()'no_found_rows'=> true传递给WP_Query,从而合法地中断分页。

因为wp_bs_pagination();0使用WP_Query,所以我们也可以使用WP_Query,它返回我们对查询进行分页所需的所有内容。请记住,我们需要将paged参数添加到查询中,以便对其进行分页

我们可以按照重写您的查询

$args= [
    'paged' => get_query_var( 'paged' ),
    // Add any additional arguments here
];
$q = new WP_Query( $args );
// Run your loop
if( $q->have_posts() ) { 
    echo '<div class="row">';
    $i=0; 
    while ( $q->have_posts() ) {
    $q->the_post();
        $i++; 
        if($i%4==0)
            echo '</div><div class="row">';
        get_template_part('loop');
    }
    wp_bs_pagination();
    wp_reset_postdata();
}

您需要以某种方式将$q->max_num_pages传递给wp_bs_pagination(),以设置自定义查询的分页,但我不知道函数,所以我无法给出确切的解决方案。

试试这个,把它粘贴到你的函数中。php

function custom_pagination() {
global $wp_query;
$big = 999999999; // need an unlikely integer
$pages = 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,
        'prev_next' => false,
        'type'  => 'array',
        'prev_next'   => TRUE,
        'prev_text'    => __('«'),
        'next_text'    => __('»'),
    ) );
    if( is_array( $pages ) ) {
        $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
        echo '<ul class="pagination">';
        foreach ( $pages as $page ) {
                echo "<li>$page</li>";
        }
       echo '</ul>';
    }

}

然后使用函数custom_page()

从这里获得解决方案:http://www.ordinarycoder.com/paginate_links-class-ul-li-bootstrap/