カテゴリIDを階層順に並べた配列をつくる
カテゴリIDを階層順に並べるのは意外と面倒じゃないですか?
カテゴリを階層化している場合は、カテゴリを階層順に並べて出力したい場合ってないでしょうか?投稿記事に紐づいているカテゴリを全部出力するには、get_the_category()関数でいけます。ただし、配列の要素順と階層とは関係なく出力されてしまいます。
投稿記事が属しているカテゴリIDを、親→子カテゴリの順に出力する
こんな関数を作ってみました。ループ内でこの関数を呼び出して使います。投稿記事が属しているカテゴリのうち、最も深い階層にあるカテゴリIDを見つけてきます。そのカテゴリの最上位の親カテゴリから、子カテゴリまでのIDを階層順に従った配列で出力します。
functions.php
簡単なコードの説明
- get_the_category()で、投稿記事が属するカテゴリを配列で出力する。
- 1の各カテゴリについて、category_parentプロパティを使って親カテゴリを辿り、それらのIDを配列に入れる。
- 2で作成した配列のうち、要素数が最も大きい配列を選択する。
もし、階層の深さが等しい2つのカテゴリに属していた場合は、先にHITした方のみを返します。用途によっては、さらに改善すべき点かもしれませんね。
「WordPress Tips」の記事
- WordPressでSVG画像を扱えるようにする
- ウィジェットタイトルを画像に置き換える方法
- 見出し行数をカウントするスクリプトを書いてみた
- 別の投稿を丸ごと挿入するプラグインを作ってみた
- 著者ページの削除方法
- PHPの無名関数
- タクソノミーの名前を変更する
- ブログ投稿インデックスページとは?
- カテゴリIDを階層順に並べた配列をつくる << この記事です
- Eclipse-PDTでXDebugでブレークしないときの対処法まとめ
- Mac OSX Lionに入れたWordPressをEclipsePDTでデバッグできるようにする
- MacにWordPressのプラグインインストールできないときの対処法
- Mac OSX LionにApache、MySQL、PHP、WordPressを入れる
- カスタム投稿にカテゴリやタグを追加する
- slideshareをWordPressに貼付ける方法まとめ
- スタイルシート初歩の前
- Windows7でWordPressテーマを開発するときのトラブル
- BitNamiの基本事項 for mac
- WordPressにおける連想配列を理解する