いつまで経ってもわからない、WEBってやつは・・・(´・ω・`)

【WordPress】直前(一番下)の所属カテゴリを取得したい場合(ΦωΦ)

ボンジョルノ! USJに家族で行ってハリポタ乗ってきましたゆでです(*´∀`*)

ヒッポグリフは乗れなかったんだ・・次回乗ろう(`・ω・´)+

さて、カテゴリに紐付いた投稿の所属するカテゴリが、親>子>孫~とかある場合、get_the_categoryで取得してきた配列で、順番がバラバラに取得されてきて困ることってありますよね(´・ω・`)<今更感・・w

そんな時のためのarray_multisort!ありがとうarray_multisort(*´∀`*)

面倒くさいので関数にしました(ΦωΦ)+

function.phpに追加

function get_the_category_last_cat($order){
 $cats = get_the_category();
 $foo = array();
 foreach($cats as $key => $value){
    $foo[$key] = $value -> $order;
 }
 array_multisort($foo ,SORT_ASC,$cats);
 $count = count($cats);
 $cats = $cats[$count-1];
 return $cats;
}

 表示側

上記関数への引数は並び替えたいキーを入れます。
とりあえず並び替えたいからterm_idでいいんだけど、汎用性もたせるために(ナゼw)あえて引数にしました(ΦωΦ)

関数からは配列が返ってくるので、表示したい部分には下記のようにすればOK!

$cats = get_the_category_last_cat('term_id'); // IDで並び替え
echo $cats->category_nicename; // スラッグ名表示
echo $cats->cat_name; // カテゴリ名表示

 取得した配列はget_the_categoryの戻り値と同じように取り出せます(*´∀`*)♪

もし所属カテゴリの一番下を取得したいのに順番で困った場合は参考までにドゾー(`・ω・´)ゞ