TOPページなどで、カテゴリー別に記事一覧を表示できるようにします。
基本的にはメインループです。
1 2 3 4 5 6 7 |
<?php query_posts('cat=4&posts_per_page=8&paged='.$paged); ?> //カテゴリーID4の記事を8記事表示 <?php if(have_posts()): while(have_posts()): the_post(); ?> <!-- ループさせる内容を記述する --> <?php endwhile; ?> <?php else : ?> <p>記事が見つかりません</p> <?php endif; ?> |
しかしどうやら、この方法、推奨されていないとのこと。よく見るけどなあ。
query_postsはメインクエリ(記事データ)を新しい条件のために置き換えるものなので、
ほかのページにも置き換えたデータが渡ってしまう危険性があるそうです。なるほど。
というわけで、他の記述方法。
以下のWP_Queryはブログの投稿やページの情報を取得するときに使用します。
メインクエリを置き換えず、サブループで一覧を表示させるためこちらを使ったほうがよさそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $my_query = new WP_Query( array( 'post_type' => 'post', // 投稿(固定ページだったらpageとか) 'posts_per_page' => 3, //表示する数((-1を指定すると全投稿を表示)) 'category_name' => 'code', //表示するカテゴリー名を入力 )); if( $my_query->have_posts() ) : ?> <!-- 記事のループ --> <?php while( $my_query->have_posts() ) : $my_query->the_post(); ?> <!-- ループする内容 --> <a href="<?php the_permalink(); ?>" class="archive_date"> <div class="post_date"><?php echo get_the_date('Y.m.d'); ?></div> <h4><?php the_title(); ?></h4> </a> <?php endwhile; ?> <?php else : ?> <p>記事はありません。</p> // 投稿データのリセット <?php endif; wp_reset_postdata(); ?> |