[wordpress] カスタム投稿 特定のカテゴリー(ターム)の表示

カスタム投稿 ターム

WordPressには、カスタム投稿  という便利な機能があります。タクソノミー(親カテゴリーみたいな感じ)とターム(子カテゴリー的な)を作る事も出来ます。

Topには表示したいけれど、一覧には載せたく無いタームがある場合も。今回は、それを制御しようと思います。本当は、もっとスマートに非表示にしたいタームだけを何とかしたかったのですが、分からなかったので(笑)

アーカイブを作る

カスタム投稿の一覧(アーカイブ)を作るには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はカテゴリーのページで確認して下さい。

カスタム投稿 slug

忘れないで!!大切な事

query_postsを使う時は、必ず最後に<?php endif; ?>の上に下記のコードで閉める事。これを書いていなくて、ハマってしまいました。

<?php wp_reset_query(); ?>

2021/06現在、Understrapの場合は<?php endif; ?> 無いなぁ~良いのかな?一応足してみました。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください