多个分页的分页查询

时间:2018-08-09 18:26:16

标签: wordpress shortcode wordpress-shortcode

我想使用POST类型的分页进行多个查询。我编写代码,但是单击第二页或第三页时,它不会返回正确的帖子。分页可能工作正常或其他错误。我想使用POST类型的分页进行多次查询。我编写代码,但是单击第二页或第三页时,它不会返回正确的帖子。分页可能工作正常或其他错误。我找不到。

function blogpost_shortcode($atts, $content = null){
extract( shortcode_atts( array(
    'count' => '1',
), $atts) );

$page = get_query_var('page');



$q1 = new WP_Query( array(
    'posts_per_page' => $count, 
    'post_type' => 'post',
    'paged'     => get_query_var('page')
) );

$q1_ids = wp_list_pluck( $q1->posts, 'ID' );
$q2 = new WP_Query(array('posts_per_page' => $count, 'post_type' => 'post', 'paged' => get_query_var('page'), 'post__not_in' => $q1_ids));


$blog_markup = '';

$blog_markup .= '
    <div class="bwog_blog_wrap">';

    while($q1->have_posts()) : $q1->the_post();
        $idd = get_the_ID();


$blog_markup .= '
    <div class="single_blog_wrap">
        <h3>'.get_the_title($idd).'</h3>
    </div>
';

    endwhile;



    while($q2->have_posts()) : $q2->the_post();
        $idd = get_the_ID();



$blog_markup .= '
    <div class="single_blog_wrap">
        <h3>'.get_the_title($idd).'</h3>
    </div>
';

    endwhile;





    $total_pages = $q1->max_num_pages;
    $big = 999999999;
    if ($total_pages > 1){  
        $current_page = max(1, get_query_var('page'));  
        $blog_markup.= '<nav class="page-nav">';  
        $blog_markup.= paginate_links(array(  
            'base'      => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
            'format'    => '?paged=%#%',  
            'current'   => $current_page,  
            'total'     => $total_pages,  
            'prev_text' => 'Prev',  
            'next_text' => 'Next' 
        ));  
        $blog_markup.= '</nav>';  
    }

$blog_markup .= '</div>';

wp_reset_query();

return $blog_markup;
}
add_shortcode('bwog_blog', 'blogpost_shortcode');

1 个答案:

答案 0 :(得分:0)

您似乎正在检查查询变量page,但是在分页代码中将格式设置为?paged=%#%。您需要确保在所有地方都使用相同的查询变量,因此应将格式设置为?page=%#%

此外,与答案无关,但我注意到了一点,您将变量$page设置为get_query_var('page'),但是从不使用它。我建议在您拥有get_query_var('page')的任何地方使用它,以使其代码更高效,更可维护。

相关问题