前提・実現したいこと
WordPressにて、現在閲覧中記事に特定カスタムタクソノミーのタームを全て出力し、
且つ記事が所属しているタームと所属していないタームの出力形式を変えたいです。
補足情報
カスタム投稿タイプ:service
カスタムタクソノミー:service-op
ターム:a、b、c、d、e、f、g
例)
特定の末端記事が所有しているタームがaとeだとする
php
1<ul> 2 <li class="app"> a </li> 3 <li> b </li> 4 <li> c </li> 5 <li> d </li> 6 <li class="app"> e </li> 7 <li> f </li> 8 <li> g </li> 9</ul>
と、このように全てのタームを出力しながら、所属しているタームにはclassを付けたいです。
発生している問題・エラーメッセージ
そもそもの配列化が間違っているような気がしております。
その為、in_array
で配列チェックをかけてもclassが付与されません。
有識者の皆様には笑われてしまう質問かもしれませんが、何卒教示して頂きたく存じます。
該当のソースコード
single.php
php
1<ul> 2 <?php //現在記事についているオプションタクソノミーのタームを取得 3 $terms = get_the_terms( $post->ID, 'service-op' ); 4 $draught_links = array(); 5 foreach ( $terms as $term ) { 6 $draught_links[] = $term->name; 7 $on_draught = join( ", ", $draught_links ); 8 } 9 10 //オプションタクソノミーのタームを全て取得 11 $args = array( 'hide_empty' => false ); 12 $taxonomys = get_terms( 'service-op', $args ); 13 foreach ( $taxonomys as $taxonomy ) { 14 $draught_op[] = $taxonomy->name; 15 $on_draught_op = join( ", ", $draught_op ); 16 if ( in_array( $on_draught, $draught_op, true ) ) { 17 echo ' <li class="app">' . $taxonomy->name . '</li>'; 18 } else { 19 echo ' <li>' . $taxonomy->name . '</li>'; 20 } 21 } 22 ?> 23</ul>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/15 23:03