アサル(ASAL)です!
今回は、「WordPressのカスタム投稿タイプで指定したタームの記事一覧を表示させる方法」をご紹介していきたいと思います。
最初に、「複数あるタームから1つのタームを指定し、そのタームの記事一覧を表示する方法」を紹介し、その後に「複数あるタームから2つ以上のタームを指定し、そのタームの記事一覧を表示する方法」を紹介していきます。
また、忙しい方はコピペしてすぐに使って下さい!!!
なお、この記事では仮のカスタム投稿タイプとして、以下のカスタム投稿タイプとしますので、ご使用に合わせてタクソノミー名やターム名を変更して下さいね。
カスタム投稿タイプ名:blog
タクソノミー名:color
ターム名(スラッグ):赤(red)、青(blue)、緑(green)
表示件数:5件
ではさっそく、「1つのタームを指定し、そのタームの記事一覧を表示する方法」から見ていきましょう!
1つのタームを指定して記事一覧を表示
下の画像が、僕が簡単に作ったカスタム投稿タイプで、タームの「赤(red)」を指定して記事一覧を表示した場合です。
「赤(red)、青(blue)、緑(green)」のタームが3つある中で「赤(red)」だけの記事一覧が表示できました!
下記がソースコードになります。
尚、ここではカスタム投稿タイプがある状態でタームの一覧を表示する方法のみになるので、カスタム投稿タイプのコードやcssは割愛させて頂きます。
カスタム投稿タイプをまだ作っていないという方は、下記の記事から先にカスタム投稿タイプを作成しておいて下さい!
プラグインなしでカスタム投稿タイプとカスタムタクソノミーを自作する方法
(ソースコードにカーソルを当てると右上にコピーボタンが表示されます)
<!-- ↓1つのタームの記事一覧を表示↓ -->
<?php query_posts( array(
'post_type' => 'blog', //カスタム投稿名を指定
'taxonomy' => 'color', //タクソノミー名を指定
'term' => 'red', //タームのスラッグを指定
'order' => 'DESC', // 最新順'DESC'・古い順'ASC'
'posts_per_page' => 5 //表示件数(-1で全ての記事を表示)
)); ?>
<?php if (have_posts()): while (have_posts()): the_post(); ?>
<!-- カスタム投稿タイプの中身が入ります -->
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
コメントアウトにある通り、まずは 'post_type' => 'blog',
で、投稿タイプの指定をします(仮カスタム投稿タイプ名でblogと指定)。
次に 'taxonomy' => 'color'
では、指定したいタクソノミー名を指定します(仮タクソノミーでcolorと指定)。
その後、'term' => 'red'
で、ターム名をスラッグで指定します(ここでは仮設定で「赤(red)」を指定)。
これで、タクソノミー(赤、青、緑)の中にある「赤(red)」だけの記事一覧を表示できるようになります。
最後に、お好みで'order' => 'DESC'
(表示順)と'posts_per_page' => 5
(表示件数)を使い、記事一覧の表示順や記事の表示件数を指定してあげましょう。
複数タームを指定して記事一覧を表示
次に「複数あるタームから2つ以上のタームを指定し、そのタームの記事一覧を表示する方法」を紹介していきます。
下の画像が、僕が簡単に作ったカスタム投稿タイプで、タームの「青(blue)と緑(green)」を指定して記事一覧を表示した場合です。
ソースコードは下のようになります。
<!-- ↓複数のタームを指定して記事一覧を表示↓ -->
<?php
$args=array(
'tax_query' => array(
array(
'taxonomy' => 'color', //タクソノミーを指定
'field' => 'slug',
'terms' => array( 'blue','green' ) //表示したいタームをスラッグで指定
),
),
'post_type' => 'blog', //カスタム投稿名を指定
'order' => 'DESC', // 最新順'DESC'・古い順'ASC'
'posts_per_page'=> 5 //表示件数(-1で全ての記事を表示)
);
?>
<?php query_posts( $args ); ?>
<?php if (have_posts()): while (have_posts()): the_post(); ?>
<!-- カスタム投稿タイプの中身が入ります -->
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
記述としては、先ほどと同じくカスタム投稿タイプの指定やタクソノミーを指定していきます。
1つのタームを指定するときと違う点は、タームを複数指定する際には、'terms' => array( 'blue','green' )
で自分の表示したいタームを2つ以上スラッグで記述します(ここでは仮設定で「青(blue)と緑(green)」を指定)。
表示を確認すると、青(blue)と緑(green)の記事一覧が表示されるようになっていますね。
最後に、表示順と表示件数をいじって終わりです!
まとめ
いかがでしたか?
僕もカスタム投稿タイプを初めて使った時には、タームを指定して記事一覧を表示する方法など、色々調べて試行錯誤していました…。
案外、カスタム投稿タイプは使いやすいんですよね〜ってことに気付かされました!
今のうちに、どんどんWordPressで出来ることの幅を広げていきましょう!
アサル(ASAL)でした!