query_postsによるpost出力
<?php query_posts("cat=1&showposts=5"); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<!--出力処理-->
<?php endwhile; else: ?>
<li>記事はありません</li>
<?php endif; ?>
<?php wp_reset_query(); ?>
cat=〇は任意のカテゴリID、showposts=〇は記事表示数
最後にwp_reset_query するの大事です!
カスタムポスト、カスタムタクソノミー、タームで絞る場合
<?php query_posts( array(
'post_type' => 'event',
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'event_taxonomy', //タクソノミーを指定
'field' => 'slug',
'terms' => 'term1' //表示したいタームをスラッグで指定
),
),
)); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<!--出力処理-->
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
ただし、query_postsタグは、テンプレートタグとして非推奨です。
※表示されない場合がある、処理が遅いなどデメリットがあります
WP_Queryによる出力
こちらが推奨された方法です。
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'no_found_rows' => true, //
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
while ($the_query->have_posts()) : $the_query->the_post();
/* 出力記述 */
endwhile;
endif;
wp_reset_postdata();
?>
コメント