みんな!私はこれがy`allのためのケーキになると確信しています、しかし私は私のループにページ付けを加えようとしています。私は周りで利用可能ないくつかのコードを試してみて、それをページ分割しましたが、2、3ページなどには1ページから同じ内容がありました。
<?php
$recentPosts = new WP_Query();
$recentPosts->query('showposts=5');
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<article>
</article>
<?php endwhile; ?>
前もって感謝します。
おそらくこれはカスタムページテンプレートを使用しているためです。以下を試してください。私は途中でステップをコメントしました。それが役に立てば幸い。
<?php
//get the current page
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
//pagination fixes prior to loop
$temp = $query;
$query = null;
//custom loop using WP_Query
$query = new WP_Query( array(
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'ASC'
) );
//set our query's pagination to $paged
$query -> query('post_type=post&posts_per_page=5'.'&paged='.$paged);
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
?>
<li>
<?php if ( has_post_thumbnail()) : ?>
<?php the_post_thumbnail();?>
<?php endif; ?>
<div class="someclass" >
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
</div>
</li>
<?php endwhile;?>
<?php //pass in the max_num_pages, which is total pages ?>
<div class="pagenav">
<div class="alignleft"><?php previous_posts_link('Previous', $query->max_num_pages) ?></div>
<div class="alignright"><?php next_posts_link('Next', $query->max_num_pages) ?></div>
</div>
<?php endif; ?>
<?php //reset the following that was set above prior to loop
$query = null; $query = $temp; ?>
ここで私の投稿タイプは 'news_events'です、4ページのタイトルが表示されるたびにページネーションが表示されます。
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$news_events = array( 'post_type' => 'news_events', 'posts_per_page' => 4, 'paged' => $paged);
$wp_query = new WP_Query( $news_events );
if ( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post();?>
<?php the_title(); echo "<br/>"; ?>
<?php endwhile; ?>
<nav>
<?php previous_posts_link('« Newer',$wp_query->max_num_pages); ?>
<?php next_posts_link('Older »',$wp_query->max_num_pages); ?>
</nav>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no news events posts at this time.', 'theme' ); ?></p>
<?php endif; ?>
ページ付け を行う方法はいくつかあります。これが一つです:
<?php $query = new WP_Query( array( 'posts_per_page' => 5 ) ); ?>
<?php while ($query->have_posts()) : $query->the_post(); ?>
<article>
<h2><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<article>
<?php endwhile; ?>
<div class="nav-previous alignleft"><?php next_posts_link( 'Older posts' ); ?></div>
<div class="nav-next alignright"><?php previous_posts_link( 'Newer posts' ); ?></div>
もちろん、WP_Queryが正しく構築されていないとうまくいきません。