親自動チェックを入れてるので、
親のカテゴリのリストもでるので、
それをphpで削除して表示
https://qiita.com/Quantum/items/767dba44af81d1825248
<div id="top_navi"> <?php // if(function_exists('bcn_display')) // { // bcn_display(); // } ?> <?php //記事中のすべてのカテゴリを取得 $categories = get_the_category(); // echo // "<pre>"; // print_r($categories); // echo "</pre>"; //フォーチ 連多次元想配列 並び替え--------- //ソート用の配列を下準備 $amounts = array(); foreach($categories as $key): $amounts[] = $key -> parent; //$amounts[] = $key['name']; endforeach; // 連多次元想配列 並び替え array_multisort($amounts, SORT_DESC, SORT_STRING, $categories); // echo // "<pre>"; // print_r($categories); // echo "</pre>"; // 2019追加 親カテゴリもチェックしてるから、全て出るので、 末端のカテゴリのみ表示させっる $d_navi = array(); foreach($categories as $key): $oya[] = $key -> parent; //親navi_idDをあつめる $myid[] = $key -> term_id; //実際のnavi_idを集める endforeach; //echo "<pre>"; // print_r($oya // ); // echo "</pre>"; // //echo "<pre>"; // print_r($myid // ); // echo "</pre>"; $navi_ids = array_diff($myid,$oya); //比較削除 前の中から あとの中とかぶってないものを返す $navi_ids = array_values($navi_ids); //indexを詰める作業 0 1 2 と。 なくても出たけど 処理が早いとか // echo "<pre>"; // print_r($navi_ids // ); // echo "</pre>"; //カテゴリがある場合の実行 //if ( $categories ) { if ( $navi_ids ) { //カテゴリの数だけ繰り返す //foreach( $categories as $category ) : foreach( $navi_ids as $navi_id ) : //カテゴリを親まで辿って表示 //商品を表示させないためファンクションで作成したget_category_parentsの変形 2019?? //2019追記 一回目 // echo // "<pre>"; // print_r($category); // echo "</pre>"; // 商品 と ジャンルのパンくずを消す if( $category->term_id !== $welcart_cat && $category->term_id !== $welcart_genre ) : ?> <div> <?php //echo my_category_parents($category->cat_ID,true," > "); ?> <?php echo my_category_parents($navi_id ,true," > "); ?> </div> <?php endif; endforeach; } ?> </div>