WordPress ループ

2014-04-05
いっす!この記事は1年以上前に投稿されたもので、情報が古いかもしれません。ご注意ください!

基本のループ

<?php if ( have_posts() ) : ?> // 記事の有無
<?php while ( have_posts() ) : the_post(); ?> // 投稿記事分繰り返し処理と読み込み
<h2><?php the_title(); ?> // タイトル
<?php the_content(); ?> // 本文
<?php endwhile; ?> // 繰り返し処理終了
<?php else : ?> // 記事がなかった場合
<p>記事がありませんでした</p>
<?php endif; ?> // 記事があるかどうかの判定終了

 メインループ

<?php
$args = array(
// ループの表示条件を書く
'category_name' => 'cat-1',
'posts_per_page' => 5 ); 
?>
<?php query_posts( $args );// ループの条件をセットする ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else : ?>
<p>記事がありませんでした</p>
<?php endif; ?>
<?php wp_reset_query();// ループの条件をリセットする ?>

配列「array」に条件を複数入れて、$argsに入れて、query_posts( $args )で実行する。

ただし、このメインループは1ページに1回しか使えない。

最後は
wp_reset_query
で必ずリセット。

サブループ

<?php
  $args = array(
     'category_name' => 'cat-1',
     'posts_per_page' => 5 ); ?>              // ループの表示条件を書く
<?php $my_query = new WP_Query( $args ); ?>   // クエリーを新規作成
<?php if ( $my_query->have_posts() ) : ?>
  <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?> 
                                              // global変数の$postを上書き
   <h2><?php the_title(); ?></h2>
   <?php the_content(); ?> 
  <?php endwhile; ?>
<?php else : ?>
  <p>記事がありませんでした</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?> // ループの条件をリセットする