ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

複数のカスタム投稿をホームで一覧表示@WordPress

いわゆるブログ的な更新コンテンツをひとつのWordPressサイト内に複数持たせ、それらの投稿一覧をホーム(トップページ)で表示させる例。

投稿一覧はすべてをひっくるめて一覧表示というやり方もあるけど、今回はそれぞれのブログコンテンツごとに分けて表示させる。

また、カスタム投稿タイプで用意した各ブログにおける「カテゴリ」的な役割をもたせるために「カスタム分類」で「カテゴリ」を用意して、実際のカテゴリ名はそのカスタム分類の中で「ターム」として設定。

f:id:showjinx:20160526152115p:plain

そして、これら異なるブログの各投稿をホームで表示する際に利用するサブループの例。

<!-- パーツ販売 --><?php $loop = new WP_Query(
     array(
          'post_type' => 'parts-for-sale', // 投稿タイプを指定
          'posts_per_page' => 1) // 表示する件数を指定
     );
?>
<?php while ( $loop->have_posts() ) : $loop->the_post();
     /* ループ開始 */ ?>
<div class="parts-for-sale">
<h1>パーツ販売</h1>
     <h2 class="title-post"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
     <?php the_content(); ?>
     <?php echo get_the_term_list( $post->ID, 'cate_parts-for-sale', '<dl><dt>カテゴリ</dt><dd>', ', ', '</dd></dl>' ); ?>

</div>
<?php endwhile; ?>
<!-- // パーツ販売 -->


<!-- 東京ほげほげ会 -->
<?php $loop = new WP_Query(
     array(
          'post_type' => 'tokyo-hogehoge-cars', // 投稿タイプを指定
          'posts_per_page' => 1) // 表示する件数を指定
     );
?>
<?php while ( $loop->have_posts() ) : $loop->the_post();
     /* ループ開始 */ ?>
<div class="tokyo-old-cars">
<h1>東京旧車会</h1>
     <h2 class="title-post"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
     <?php the_content(); ?>
     <?php echo get_the_term_list( $post->ID, 'cate_tokyo-hogehoge-cars', '<dl><dt>カテゴリ</dt><dd>', ', ', '</dd></dl>' ); ?>
</div>
<?php endwhile; ?>
<!-- // 東京ほげほげ会 -->


<!-- 鈴のほげほげ倶楽部 -->
<?php $loop = new WP_Query(
     array(
          'post_type' => 'suzuno-hogehoge-club', // 投稿タイプを指定
          'posts_per_page' => 1) // 表示する件数を指定
     );
?>
<?php while ( $loop->have_posts() ) : $loop->the_post();
     /* ループ開始 */ ?>
<div class="tokyo-old-cars">
<h1>鈴の音GT倶楽部</h1>
     <h2 class="title-post"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
     <?php the_content(); ?>
     <?php echo get_the_term_list( $post->ID, 'cate_suzuno-hogehoge-club', '<dl><dt>カテゴリ</dt><dd>', ', ', '</dd></dl>' ); ?>
</div>
<?php endwhile; ?>
<!-- // 鈴のほげほげ倶楽部 -->

もっと汎用的というか、わかりやすくまとめておきたかったけど、自分でも「カスタム投稿、カスタム分類、スラッグ、ターム etc…」でかなり混乱して数時間もんどりうってしまったので、とりあえず残しておくだけの自分しかわからないであろうメモです。

とくにハマったというか苦労したのはカスタム分類で作成した「ターム」の表示。

このへんは用語とそれらの機能をしっかり理解してなかったからだと思うけど、混乱しまくりました。

基礎からのWordPress 改訂版 (BASIC LESSON For Web Engineers)

基礎からのWordPress 改訂版 (BASIC LESSON For Web Engineers)