カスタム投稿をTOPページ(固定ページ)に掲載する

自分用の備忘録です。

新着情報をTOPページに掲載するとき、新着情報にカテゴリ(タクソノミー)が設定している場合、カテゴリ名(ターム)を取得しなければならないケースが多々ありますよね。

毎回はまるので、今回のPHP部分の記述をまるっと掲載します。


      <ul >
        <?php
        	$wp_query = new WP_Query();
        	$my_posts03 = array(
        		'post_type' => 'news',/* カスタム投稿タイプ */
        		'posts_per_page'=> '5',/* 表示件数 */
        	);
        	$wp_query->query( $my_posts03 );/* 複数の投稿を1つのページに掲載するときは変数名でデータを分ける */
        	if( $wp_query->have_posts() ): while( $wp_query->have_posts() ) : $wp_query->the_post();

          /* タームの取得 */
          $terms = get_the_terms( $post -> ID, 'news_taxonomy' ); //タクソノミー名
          foreach ( $terms as $term ) { $store_cat = $term -> name; }/* 今回はカテゴリ名で分岐 */
          /* アイコンの設定 */
          if( $store_cat == 'A'): $store_img = "A.png";
          elseif( $store_cat == 'B'): $store_img = "B.png";
          endif;
        ?>
        <li>/* ここにループ表示部分を記述 */</li>
        <?php endwhile; endif; wp_reset_postdata(); ?>
      </ul >

私の場合、ここでよくわからなくなるのが「タクソノミー名」ですが、カスタム投稿をfunctions.phpに記述したときに書いたあの部分になります。


/* カスタム投稿にカテゴリをつける */

register_taxonomy(
  'news_taxonomy',  // 追加するタクソノミー名(英小文字とアンダースコアのみ)←ここ!!
  'news',  // どのカスタム投稿タイプに追加するか
  array(
    'label' => 'カテゴリー',  // 管理画面上に表示される名前(投稿で言うカテゴリー)
    'labels' => array(
      'all_items' => 'カテゴリー一覧',  // 投稿画面の右カラムに表示されるテキスト(投稿で言うカテゴリー一覧)
      'add_new_item' => '新しいカテゴリーを追加',  // 投稿画面の右カラムに表示されるカテゴリ追加リンク
      'rewrite' => true, /* パーマリンクのリライトの許可 */
    ),
    'show_in_rest' => true, /* 投稿画面にターム表示を追加 */
    'hierarchical' => true  // タクソノミーを階層化するか否か(子カテゴリを作れるか否か)
  )
);

これをよくカスタム投稿タイプと間違えがちなので、要注意・・・!

コメント

タイトルとURLをコピーしました