【WordPress】投稿IDを指定して特定の記事のみを表示する方法【WP_Query】
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事ではWordPressで投稿IDを指定して特定の記事のみを表示する方法をご紹介しています。
トップページやサイドバーなどで特定の記事をピックアップして表示したい場合などにご活用いただけるかと思います。
では、解説していきます。WP_Qyery()で投稿IDを指定して記事を取得する
WP_Queryで投稿IDを指定して記事情報を取得します。複数のIDが指定できるようにしておきます。
$args = array(
'post_type' => 'post',
'post__in' => array(1000, 1100, 1200, 1300),
'post_status' => array('publish'),
'order'=> 'asc',
'orderby'=> 'post_date'
);
$query = new WP_Query($args);
上記のサンプルでは「1000」「1100」「1200」「1300」の投稿IDを持つ「公開済み」の記事を取得するように指定しています。ソートについては「投稿日」の「昇順」にしています。
WP_Query()では他にも多くのパラメータを指定することができます。Codexに詳しく記載がありますので、もっと細かく指定される場合は下記を参考に指定していただければと思います。
WP_Qyery()で取得した記事情報を表示する
続いて前項で取得した記事をループして表示します。
出力する項目は「アイキャッチ画像」「パーマリンク」「カテゴリー名」「投稿日時」「投稿タイトル」の最低限必要なものだけを記載しています。
if($query->have_posts()):
while($query->have_posts()):
$query->the_post(); ?>
<a href="<?php echo get_permalink(); ?>">
<!-- アイキャッチ画像 -->
<?php
if ( has_post_thumbnail() ):
//記事に設定されているアイキャッチ画像を表示
the_post_thumbnail('thumbnail');
else:
//アイキャッチ画像がない場合に表示する画像
echo 'No Image';
endif;
$cats = get_the_category();
foreach($cats as $cat):
?>
<!-- カテゴリー名 -->
<span class="category">
<?php echo esc_html($cat->name); ?>
</span>
<?php
endforeach;
?>
<!-- 投稿日時 -->
<time class="date" datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y.m.d') ?></time>
<!-- 投稿タイトル -->
<h3><?php the_title(); ?></h3>
</a>
<?php
endwhile;
else:
echo '投稿はありません';
endif;
wp_reset_postdata();
?>
上記では最低限の項目だけを表示していますが、他にも出力できる項目は多くあります。
WP_Query()で取得することができる値につきましては下記の記事でまとめていますので、あわせてご参照いただければと思います。
最後に
いかがでしたでしょうか。
WP_Query()での取得方法を知っておくことで、テンプレートタグにはない様々な方法で記事情報を取得することができるようになります。WP_Query()を制する者はするものはWordPressを制す! というのは言い過ぎですが、使い方に慣れておくことで提案がしやすくなりますので、どこかで時間を取って慣れておいて損はないかと思います。
以上、WordPressで投稿IDを指定して特定の記事のみを表示する方法のご紹介でした!