1

私はページネーションを行いましたが、各ページに同じ投稿が表示されているため、正しく機能しません。

コード:

<?php if ( have_posts() ) : ?>
    <?php $query = new WP_Query( array('post_type' => 'post', 'kalba' => 'Lietuviu', 'posts_per_page' => 2) );?>
    <?php while ( $query->have_posts() ) : $query->the_post();?>
        <h2 class="title"><a href ="<?php the_permalink();?>"><?php echo $query->post->post_title;?></a></h2>
        <div class="date"><?php echo mysql2date('Y-m-d', $query->post->post_date);?></div>
        <div class="post"><p><?php echo $query->post->post_content;?></p></div>
    <?php endwhile;?>
    <? $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'   => $query->max_num_pages,
                            'end_size'=> 1,
                            'mid_size'=> 10 ) );?>
<?php endif; ?>

問題が見つかりません。おそらく問題は、「分類法」を使用していることです。

4

1 に答える 1

1

問題は、同じクエリを何度も実行していることです。

<?php $query = new WP_Query( array('post_type' => 'post', 'kalba' => 'Lietuviu', 'posts_per_page' => 2) );?>

WP_Query配列にオフセットを設定する必要があります。'offset'=> 2

$page簡単な方程式を使用して、wordpressが使用するグローバル変数を使用してオフセットを計算できます。$offset = ($page -1) * $post_per_page;

したがって、最終的なWP_QUERYは次のようになります。

<?php $query = new WP_Query( array('post_type' => 'post', 'kalba' => 'Lietuviu', 'posts_per_page' => 2, 'offset'=> (($page -1) * 2) ) );?>
于 2012-11-24T21:04:03.770 に答える