サクッと動くWordPressの小技集。今回は「メインループとは別のサブループを作る」に挑戦してみます。
普通のループ
いわゆる普通に使うループは
<?php if(have_posts()): while(have_posts()): the_post(); ?>
// 内容
<?php endwhile; endif; ?>
これで良いですが、例えばカスタム投稿タイプ用のループを作ったりする時はメインループだけでは困ってしまう時があります。
サブループを作ってみる
そこで、メインループとは別にサブループを作る必要がある時は下記!!
<?php
$args = array(
'post_type' => 'post', // カスタム投稿の場合はここをカスタム投稿名にすればOK
'posts_per_page' => 4 // 記事をいくつ表示するか
);
$myposts = new WP_Query($args);
if($myposts->have_posts()): while($myposts->have_posts()): $myposts->the_post();
?>
// 内容
<?php
endwhile; endif;
wp_reset_postdata();
?>
といった感じで、WP_Query()として渡してあげて、最後にwp_reset_postdata()でループ解除?ループを他に影響させないようにリセットしてあげればOK!!
$argsは通常と同じオプションが利用できます!
ちなみに固定ページなどで記事一覧を出力する場合は、
<?php
$paged = get_query_var('paged')? get_query_var('paged') : 1; // ←これ追加
$args = array(
'post_type' => 'post',
'posts_per_page' => 4,
'paged' => $paged, // ←これ追加
);
$myposts = new WP_Query($args);
if($myposts->have_posts()): while($myposts->have_posts()): $myposts->the_post();
?>
// 内容
<?php
endwhile; endif;
wp_reset_postdata();
?>
といった感じで大丈夫かと。
こんな感じでサクッとサブループを作成することが出来ました。
以上、WordPress小技集–メインループとは別のサブループを作る–でしたっ!!