今回はトップページにカスタム投稿タイプの一覧を表示する方法について記載します。
index.phpに下記のとおり書くとカスタム投稿タイプ一覧が表示されます。
<ul class="boxList clearfix">
<?php
global $query_string;
query_posts(
Array(
'post_type' => array( 'news' ), //カスタム投稿タイプ名を記載
'showposts' => 5,
'posts_per_page' => 5,
'paged' => get_query_var('paged')
)
);
if (have_posts()) {
while (have_posts()) {
the_post();
?>
<li class="clearfix">
//カスタム投稿タイプで表示したい項目を記載
</li>
<?php
}
}else{
}
wp_reset_query();
?>
</ul>
カスタム投稿タイプ一覧の中でも特定のタクソノミーに所属するものだけ表示したい場合、query_postsにtax_queryを追加します。
1つのスラッグだけ指定したい場合は下記のように記述します。
query_posts(
Array(
'post_type' => array( 'news' ), //カスタム投稿タイプ名を記載
'tax_query' => array(
array(
'taxonomy' => 'newscat', //タクソノミー名を指定
'field' => 'slug', //'term_id'、'slug'などのフィールド名を指定
'terms' => 'media', //タクソノミーの値を指定
'operator' => 'IN' //'AND'、'IN'、'NOT IN'の何れかを指定
)
),
'showposts' => 5,
'posts_per_page' => 5,
'paged' => get_query_var('paged')
)
);
複数のスラッグを指定したい場合はtermsの部分を下記のように指定します。
'terms' => array( 'press','media' ), //今回はpressとmediaというスラッグ名を指定