wordpressのカテゴリー背景色を変更する方法
複数表示する場合
  2021年12月01日 
ヒロックラボの竹村です。カテゴリー背景色を変更する方法は調べるとたくさん見つかりますが、以下の条件に適したものが見つからずとても苦労しました。試行錯誤しながらできた方法をご紹介したいと思います。
- ・管理画面から色の指定ができる
- ・カテゴリーを複数表示させる場合にも適応している
- ・カスタムタクソノミーに対応したもの
「Advanced Custom Fields」での操作方法
「Advanced Custom Fields」で投稿のカテゴリー一覧ページからカテゴリー(タクソノミー)の色を設定できる欄を作成していきます。以下の画像のように登録していきます。


このように設定していくと、投稿>カテゴリー一覧の画面に色を設定する欄が表示されます。
これで「Advanced Custom Fields」での設定は終了になります。

PHPファイルの編集
タクソノミーを表示させたい部分に以下のコードを貼り付けます。
タクソノミーを1つ表示
<?php
 $this_terms = get_the_terms( $post->ID, 'tech-type' );
 if ( $this_terms ) {
	 $this_term_color = get_field( 'color', 'tech-type_' . $this_terms[0]->term_id );
	 $this_term_name  = $this_terms[0]->name;
	 foreach ( $this_terms as $this_term ) {
	  echo '<li class="article__category" style="' . esc_attr( 'background:' . $this_term_color ) . ';"><a href="'.get_term_link($this_term).'">'.$this_term->name.'</a></li>';
  }
 }
?>タクソノミーを2つ以上表示
<?php
  $this_terms = get_the_terms( $post->ID, 'tech-type' );
	if ( $this_terms ) {
	 $i = 0;
	 $this_term_name  = $this_terms[0]->name;
	 foreach ( $this_terms as $this_term ) {
		 echo '<li class="article__category" style="' . esc_attr( 'background:' . get_field( 'color', 'tech-type_' . $this_terms[$i]->term_id ) ) . ';"><a href="'.get_term_link($this_term).'" >'.$this_term->name.'</a></li>';
	  $i++;
	 }
  }
?>タクソノミー1つだけ表示させる場合と2つ以上表示させる場合の違いを解説していきます。
2つ以上表示させる場合は「$this_terms[]」という部分を変更する必要があります。1つのみ表示の場合は「$this_terms[0]」ですが2つ以上のときは「$this_terms[$i]」というように変更します。
get_field( 'color', 'tech-type_' . $this_terms[$i]->term_id ) 「$this_terms」というのは変数で、この変数の中には表示されている投稿のカテゴリーが入っています。「$this_terms」の因数に連番を取得する変数を「$i」を定義することでカテゴリーを複数表示することができます。ちなみにカテゴリーを複数登録しているにも関わらず「$this_terms[0]」というように記載すると一番最後に登録したカテゴリーのみ表示されます。








