WordPress 条件を指定して記事一覧を絞り込んで表示する

WP_Queryget_postsのパラメーターで条件を指定して記事一覧を絞り込んで表示する方法を紹介します。

投稿で絞り込む

投稿IDで絞りたい

<?php
$args = array(
    'p' => 1
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

複数の投稿IDで絞りたい

<?php
$args = array(
    'post__in' => array(1,5)
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

投稿スラッグで絞りたい

<?php
$args = array(
    'name' => 'hello-world'
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

複数の投稿スラッグで絞りたい

<?php
$args = array(
    'post_name__in' => array('hello-world', 'post-name') //WordPress4.4から
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

カテゴリーで絞り込む

カテゴリーIDで絞りたい

<?php
$args = array(
    'cat' => 29,
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

複数のカテゴリーIDで絞りたい

<?php
$args = array(
    'cat' => '42,44'
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

カテゴリースラッグで絞りたい

<?php
$args = array(
    'category_name' => 'ramen'
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

複数のカテゴリースラッグで絞りたい

<?php
$args = array(
    'category_name' => 'ramen,tsukemen'
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

カテゴリーIDで絞りたい(子カテゴリー除外)

<?php
$args = array(
    'category__in' => 44
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

複数のカテゴリーIDで絞りたい(子カテゴリー除外)

<?php
$args = array(
    'category__in' => array(44, 42)
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

カスタム投稿タイプで絞り込む

カスタム投稿タイプで絞りたい

<?php
$args = array(
    'post_type' => 'ramen-post'
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

複数のカスタム投稿タイプで絞りたい

<?php
$args = array(
    'post_type' => array('post', 'page', 'ramen-post')
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

タクソノミー、タームで絞り込む

タームで絞りたい

<?php
$args = array(
    'post_type' => 'somen-post',
    'tax_query' => array(
        array(
            'taxonomy' => 'somen_tax',
            'field'    => 'slug', //term_id、name、slug、term_taxonomy_idで指定可
            'terms'    => 'hosomen'
        ),
    ),
);
$the_query = new WP_Query( $args );
?>

<ul>
<?php if ($the_query->have_posts()): ?>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
    <?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
</ul>

Wodpress デザイナーの私的メモ帳

条件分岐

投稿関連

固定ページ関連

カテゴリー関連

タクソノミー、ターム関連

プラグイン

その他

MW WP Form

  • このエントリーをはてなブックマークに追加

プロフィール

kura

WEBで食べていきたいデザイナーです。 趣味でアプリ開発(ペア、デザイン担当)やNuxt.jsやらをいじってますが、やばいな~と感じつつネットの波に取り残されないようにワカッタこと、キヅイタことをカキカキします。