WordPressには、カスタム投稿 という便利な機能があります。タクソノミー(親カテゴリーみたいな感じ)とターム(子カテゴリー的な)を作る事も出来ます。
Topには表示したいけれど、一覧には載せたく無いタームがある場合も。今回は、それを制御しようと思います。本当は、もっとスマートに非表示にしたいタームだけを何とかしたかったのですが、分からなかったので(笑)
INDEX
アーカイブを作る
カスタム投稿の一覧(アーカイブ)を作るにはarchive.phpをコピーして、archive-投稿タイプ名.phpとするだけです。
どこに書くか
ループが始まる所 <?php if ( have_posts() ) : ?> を探して下さい。
その上に書きます。
特定のカテゴリー(ターム)の表示
例えば、schoolというカスタム投稿を作り、cityという親カテゴリーがあり、都市名をいろいろ作ったけれど、表示したいのは、3都市のみ。
<?php
$args=array(
'tax_query' => array(
array(
'taxonomy' => 'city', //タクソノミーを指定
'field' => 'slug',
'terms' => array( 'tokyo','hiroshima','fukuoka' ) //表示したいタームのスラッグ名
),
),
'post_type' => 'school', //カスタム投稿名
'posts_per_page'=> -1 //表示件数(-1で全ての記事を表示する。又は表示したい数字)
);
?>
<?php query_posts( $args ); ?>
Slugはカテゴリーのページで確認して下さい。
忘れないで!!大切な事
query_postsを使う時は、必ず最後に<?php endif; ?>の上に下記のコードで閉める事。これを書いていなくて、ハマってしまいました。
<?php wp_reset_query(); ?>
2021/06現在、Understrapの場合は<?php endif; ?> 無いなぁ~良いのかな?一応足してみました。
コメント ※ハンドルネームでお願いします