query_posts()


WordPressのquery_posts()関数は、メインのループを変更してカスタムクエリを実行するために使用されます。この関数は投稿をフィルタリングし、特定の条件に一致する投稿を取得します。

構文

query_posts( string|array $query );
  • $query (string|array) — 投稿を絞り込むためのパラメータを指定します。クエリ文字列または配列として渡すことができます。

例1: 投稿数を制限する

最大5件の投稿を取得します。

<?php query_posts( 'posts_per_page=5' ); ?>
<?php while ( have_posts() ) : the_post(); ?>
    <h4><?php the_title(); ?></h4>
<?php endwhile; wp_reset_query(); ?>

例2: カテゴリごとに投稿を取得する

特定のカテゴリIDの投稿を表示します。

<?php query_posts( array( 'cat' => 3 ) ); ?>
<?php while ( have_posts() ) : the_post(); ?>
    <h4><?php the_title(); ?></h4>
<?php endwhile; wp_reset_query(); ?>

例3: 特定の投稿タイプを表示する

カスタム投稿タイプ'news'の投稿を取得します。

<?php query_posts( 'post_type=news' ); ?>
<?php while ( have_posts() ) : the_post(); ?>
    <h4><?php the_title(); ?></h4>
<?php endwhile; wp_reset_query(); ?>

例4: 投稿日付順で表示する

投稿を新しい順に並べます。

<?php query_posts( 'orderby=date&order=DESC' ); ?>
<?php while ( have_posts() ) : the_post(); ?>
    <h4><?php the_title(); ?></h4>
<?php endwhile; wp_reset_query(); ?>

例5: 投稿をタグでフィルタリングする

タグ'featured'が付いた投稿を取得します。

<?php query_posts( 'tag=featured' ); ?>
<?php while ( have_posts() ) : the_post(); ?>
    <h4><?php the_title(); ?></h4>
<?php endwhile; wp_reset_query(); ?>

注意点

  • query_posts()を使用すると、デフォルトのクエリが上書きされます。
  • カスタムクエリを作成する場合、WP_Queryget_posts()を使用する方が効率的です。
  • 使用後は必ずwp_reset_query()を呼び出して、メインクエリをリセットしてください。

関連機能: