[WordPress]query_posts(‘nopaging=1’)で全ての記事を表示する
WordPressで記事を表示するときに以下のようにすると管理画面の「表示設定」で設定した「1ページに表示する最大投稿数」の数だけループされます。
<?php if (have_posts()) : ?> <ul> <?php while (have_posts()) : the_post(); ?> <li><?php the_title(); ?></li> <?php endwhile; ?> </ul> <?php endif; ?>
特定のテンプレートだけ全ての記事を表示しようと以下のように1000件の記事と恐らく投稿されない数を指定する考え方があるようです。
<?php if (have_posts()) : ?> <ul> <?php query_posts( 'showposts=1000' ); ?> <?php while (have_posts()) : the_post(); ?> <li><?php the_title(); ?></li> <?php endwhile; ?> </ul> <?php endif; ?>
しかし、そんな事をしなくても以下のように query_posts( ‘nopaging=1’ ) と指定すればOKです。
<?php if (have_posts()) : ?> <ul> <?php query_posts( 'nopaging=1' ); ?> <?php while (have_posts()) : the_post(); ?> <li><?php the_title(); ?></li> <?php endwhile; ?> <?php wp_reset_query(); ?> </ul> <?php endif; ?>
また、query_posts() を使ったら wp_reset_query() でリセットしておくのがベターです。