WordPress: get_the_category()で取得した記事のカテゴリー一覧を、親のカテゴリーのIDに基づき並べ替える

WordPressでは、get_the_category()により、記事のカテゴリーを配列で取得できます。この記事では、属するカテゴリーが複数あるとして、カテゴリーの親カテゴリーのIDに基づき並べ替えます。

やり方

get_the_category()で取得した投稿記事のカテゴリーのオブジェクトの配列を、親カテゴリーのIDに基いて並べ替えます。つまり、オブジェクトのパラメータparent(親カテゴリーのID)に基づいてsortするということです。そのために、PHPのusort関数を用います。

コードは以下。

// カテゴリの取得
$categories = get_the_category();

// 親カテゴリのID順
function sort_by_cat_parent( $a, $b ) {
    if ($a->parent == $b->parent) {
        return 0;
    }
    return ($a->parent < $b->parent) ? -1 : 1;
}
usort($categories, "sort_by_cat_parent");

$categoriesの中が、親カテゴリーのID順にsortされます。

参考

参考にさせていただきました。ありがとうございました。今回始めてusort関数を使いましたが、ちょっとわかった気がします。

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です