補足1 で、表示したいパーツが問題なく表示できることを確認しました。
このままメインループで作れるのかどうか?
前回、実績一覧のメインループは「新しいものから新着X件を表示」であると説明しましたが、これをモニョモニョと作り変えて「制作実績のカテゴリごとに3件表示」ということができるかどうか、ですが、できません。
いや、できるかもしれないのですが、少なくとも方法が思いつきませんでした。
なので、あっさり諦めて、サブループを作ります。
ある制作実績カテゴリの制作実績を最新3件表示してみる
本編では大幅に端折っている部分について、ちょびっと詳細に書いてみます。
まず、サブループの書き方です。今回はget_posts()関数を使います。
実際は下記のように書きます。
<?php
//get_posts()で呼び出したいデータについての情報を書く
$args = array(
//3件を表示する
'posts_per_page'=> 3,
//制作実績のデータ
'post_type' => 'works',
//制作実績カテゴリの「ウェブ」のデータ
'works_cat' => 'web',
);
//get_posts()でデータを取得
$myposts = get_posts( $args );
if($myposts):
//取得したデータで繰り返し処理
foreach ( $myposts as $post ) :
//以下の記述が重要(A)
setup_postdata( $post );
//これ以下が繰り返したい処理の内容 ?>
<div class="list-item">
<div class="thum"><a href="<?php the_permalink();?>"><?php the_post_thumbnail('medium');?></a></div>
<h3 class="list-item-title"><a href="<?php the_permalink();?>"><?php the_title();?></a></h3>
</div><!-- .list-item -->
<?php//繰り返しの処理はここまで
endforeach;
//以下の記述は大事。(A)でsetupしたものをリセットする
wp_reset_postdata(); ?>
カテゴリのデータを指定している部分がちょっとわかりにくいでしょうか。
'works_cat' => 'web'
関係性としては、下記のようになっています。
'タクソノミー名(taxonomy)' => 'ターム名(term)'
ここで、ついてこれない方も、きっと、いらっしゃるはず・・・・・。
タクソノミー名とターム名の関係は、カテゴリーとカテゴリ名と同じなんですが、イメージできますかね・・・・。
わからんぞ!という方向けに、確認方法を記載しておきます。

下記の通り、制作実績カテゴリの(表示では「分類」ってなってますけど)ページを表示します。
書き込んだとおりですが、下線部分がタクソノミーの名前です。
/wp-admin/edit-tags.php?taxonomy=works_cat&post_type=works
functions.phpで設定しています。
上記のソースのとおりに書いてアップすると、「制作実績分類」の「Web関係」に属している記事3件分のアイキャッチ画像やらタイトルやらが表示されるはずです。
これで「特定の分類の記事を3件表示する」ということができました。
なので、この方法で、表示したいカテゴリ分だけ、上記のようなソースをテンプレートに書いていけば、「カテゴリ別に記事を3件表示する」ということが叶います。
ですが、カテゴリーは増えるかもしれないし、減るかもしれないし、たくさんあったとしたら、ひとつづつ書いていくのはどう考えても面倒。
なので、記事を呼び出す「サブループ」を「カテゴリがある分だけ繰り返す」別のループに入れちゃいます!
詳しくは、補足3に続きまーす。
