Wordpress自定义循环分页

时间:2016-01-13 14:26:19

标签: php wordpress pagination

我在multiple loops structure内编码自定义循环:

$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();

除了我添加wp_bs_pagination();以加载分页。它只在每一页重复同一组帖子。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

试试这个,将其粘贴到你的functions.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_pagination()

功能

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

答案 1 :(得分:0)

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

问题是,get_posts仅返回$posts的{​​{1}}属性,而不是完整对象。此外,WP_Queryget_posts()传递给'no_found_rows'=> true,合法地打破了分页。

由于WP_Query使用get_posts,我们不妨使用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以设置自定义查询的分页,但我不知道该功能,因此我无法为您提供准确的解决方案。