【WordPress】カスタムタクソノミーを取得して、任意のクラス名等を付ける方法

今回はカスタムタクソノミーを取得して、任意のクラス等を付ける方法をご紹介します。

内容を分かりやすくするために「クラス」と言いましたが、実際のところはWordPressで取得した要素の前後に文字列を付けるというものです。

取得したカテゴリー群に対して、後付けで色々設定できるので結構便利だと思います。
では早速見ていきます。

コード

今回の例は、作成したカスタムタクソノミーを取得した上で、以下の内容を満たすものとします。

  • リスト形式で表示
  • 取得したカテゴリ群の中の最初のカテゴリーについては、クラス「on」を追加で付与

最終的に表示するHTMLのイメージは以下の通りです。

<ul class="menu_list">
	<li class="category on">カテゴリー1</li>
	<li class="category">カテゴリー2</li>
	<li class="category">カテゴリー3</li>
	...
</ul>

以上の表示を行うために、PHPには以下のように記述します。

<ul class = "menu_list">
<?php
	$args = array(
		'taxonomy'=>'cat_menu',//'cat_menu':タクソノミー名
	);
	$categories = get_categories( $args );
	
	$flag = 1;//最初の要素かどうかを判定
	foreach ( $categories as $category ) {
		$cat_name = $category->name;
		/*最初のリスト要素には、クラス「on」を付与*/
		if($flag ==1){
			echo '<li class="category on">' . $cat_name . '</li>';
			$flag = 0;
		}else{
			echo '<li class="category">' . $cat_name . '</li>';
		};
?>
</ul>

ポイントは以下の通りです。

POINT

  • get_categories($args)でカスタムタクソノミー("cat_menu")を取得
  • foreach文で取得したカスタムタクソノミーのそれぞれに対して処理を行う(今回は変数flagを用いて、最初のカテゴリについてクラス「on」を付与)