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関数を使いましたが、ちょっとわかった気がします。
- 昔、PHPのusort関数がきもかったのに、今はそうでもない。 – donkのPHP日記
- テンプレートタグ/get the category – WordPress Codex 日本語版
- PHP: usort – Manual
関連記事
WordPress の記事
- [2018年4月3日] WordPressでGoogle Analyticsを利用する
- [2017年5月8日] TwentySeventeenで1カラム(シングルカラム)にする
- [2017年5月4日] WordPress高速化のためCentOS 7でPHPを5.4->7.1にアップデート(on ConoHaのVPS)
- [2017年5月3日] TwentySeventeenに変更。さらば黒枠。よりモノクロームに
- [2017年4月2日] WordPressの数式表現はMathJaxが一等便利
- ---本記事---
- [2017年1月7日] 滞りなくWordPress 4.7 にアップデート
- [2016年11月30日] Twenty Sixteen で記事本文の左側に回り込むフッターを回り込ませない
- [2016年11月18日] WordPressで、投稿記事と同じカテゴリー内の前後数件の記事を一覧出力する
- [2016年7月9日] WordPress の Twenty Sixteen でリンクの下線を消す
- [2016年7月7日] ConoHaのVPS上で CentOS 7 + nginx + WordPress 構築まで
スポンサーリンク