普段仕事でWordPressを使用するので、サブループをよく使用する場面をメモ。
トップページでカスタム投稿の記事を3件だけ出力したい
3件じゃなくてもいいのですが…コーポレートサイトではほぼ間違いなくあるんじゃないでしょうか。
例えば「新着情報」として、informationというカスタム投稿を出力したい場合
<?php
$paged = get_query_var('paged', 1);
$query = new WP_Query(
array(
'paged' => $paged,
'posts_per_page' => 3,
'post_type' => 'information'
));
if ( $query->have_posts() ):
while ( $query->have_posts() ) : $query->the_post();?>
// ループの内容
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
ちなみにifとwhileは一緒の場所に書く必要ないです。
例えばinformationの記事がなければ、セクションごと表示しなくてもいいなら
//ここまで省略
<?php if ( $query->have_posts() ): ?>
<section>
<div>
<h2>新着情報</h2>
<ul>
<?php while ( $query->have_posts() ) : $query->the_post();?>
<li>hogehoge</li>
<?php endwhile; ?>
</ul>
</div>
</section>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
みたいにすれば、記事がなければセクションごと表示されなくなるはず。