13以前、get_categoryとget_the_categoryの違いについてという記事を書きました。これらの関数を使って、実際にカテゴリー名を表示させてみようと思います。現在のカテゴリーをただ表示させるだけというのは左程難しくないと思うので、今回は2階層以上あるカテゴリーで、どのページにいても現在表示されているカテゴリーおよび所属しているカテゴリーの最上位カテゴリー名を表示させます。上にカテゴリーがない一番上のカテゴリーです。array_reverse()カテゴリーアーカイブのページで(category.php)、カテゴリーページにて、最上位のカテゴリーが表示されていたらそのカテゴリー名を表示、親カテゴリーがあればそのカテゴリーの最上位カテゴリー名を表示してみます。//get_category($cat)でも可能。$catは現在のカテゴリーIDは入る。//親カテゴリーのID。//get_category($cat)でも可能。$catは現在のカテゴリーIDは入る。//親カテゴリーのID。//カテゴリー名表示}?>現在表示されているページのカテゴリー情報はget_categoryかget_queried_objectで取得できます。中身はvar_dump()やprint_r()に確認してもらいましょう。get_queried_object();親カテゴリーの有無($catParent)の分岐は下記のような書き方もできます。親カテゴリーがない場合(=最上位カテゴリー)は「0」が帰ってくるので「0だったら/『0ではない』ではなかったら」、親カテゴリーがある場合(=子カテゴリー)は0以外の親カテゴリーIDが帰ってくるので「0以外/0より上だったら」というように分岐ができます。}array_popは、配列の一番最後の値を取り出すPHP関数です。get_ancestorsは孫→子→親(一番上)と逆の順番で返ってくるので、その順番を利用して値を取得します。//一番上のカテゴリー)60が最上位カテゴリーのIDかつ配列の一番最後の値なので、array_popで最後の60を取得するという感じです。配列の要素が1つ減っちゃうのですが、最後の値を取るだけなら問題ないのかな...?get_ancestorsは通常のカテゴリー構造とは逆の順番で帰ってくるのですが、array_reverse()というPHPの関数を使うと、配列の順番を逆さにすることが可能になり、親→子→孫という順番で値が返ってきます。//上から2番目のカテゴリー)という順番で返ってきます。パンくずリストなど作る時には使えそうです。因みにarray_reverseを使って最上位のカテゴリーを取得すると、下記のような感じになります。(やや強引)PHP//配列の順番を逆にする。後ろのカテゴリIDが一番前に来る→最上位のカテゴリIDが配列の一番前に来る。//カテゴリー名取得1234//配列の順番を逆にする。後ろのカテゴリIDが一番前に来る→最上位のカテゴリIDが配列の一番前に来る。//カテゴリー名取得スラッグを表示させる場合は、else以降でまず最上位のカテゴリIDの情報を取得してからスラッグを取得します。slug;これで、どのレベルのカテゴリーページにいても最上位のカテゴリー名が表示されます。ancestors指定された子オブジェクトの祖先オブジェクトの配列を返します。?>$object_id(必須)子オブジェクトのID$object_type(必須)祖先オブジェクトの種類:’page’’category’など。その他階層を持った投稿タイプ、階層を持ったタクソノミーが指定可能。categories問い合わせパラメータにマッチするカテゴリーのオブジェクトを配列として返します。object現在クエリされているオブジェクトを取得する。カテゴリーアーカイブを表示中なら、カテゴリーオブジェクト。);?>投稿記事で表示させる場合(single.php)投稿記事は複数のカテゴリーに登録している場合がありますので、一番初めのカテゴリーをひとつ取り出して、そのカテゴリーの親カテゴリーを調べます。//カテゴリー名表示}?>親カテゴリー有無の分岐はカテゴリーページと同じです。投稿記事の場合は、get_the_categoryを使って、登録しているカテゴリー情報を取得します。ID)内容この記事が所属する全カテゴリーの情報取得。複数あれば配列で返ってくる。最上位のカテゴリーのみのカテゴリーリストを作成するカテゴリーのリストを表示するタグを使って、最上位のみのカテゴリーリストを作ってみます。wp_list_categoriesを使うこちらのタグはリンク付きでフォーマットされたカテゴリーリストを表示します。フォーマットされていない生のデータが必要な時は、後述のget_categories()を使用します。「depth=1」と指定すると、最上位カテゴリーのみ出力します。);?>get_categoriesを使うパラメーターを指定して、カテゴリーのオブジェクトを配列として返します。パラメータの内容はwp_list_categoriesとほぼ同じで、クエリ文字列形式でも配列形式でも渡すことが可能。こちらの方が色々と応用がききますね。$category->category_parent123456789101112131415$category->term_id$category->name$category->slug$category->term_group$category->term_taxonomy_id$category->taxonomy$category->description$category->parent$category->count$category->cat_ID$category->category_count$category->category_description$category->cat_name$category->category_nicename$category->category_parentWordPressのカテゴリーについては、以下の記事もあわせて読んでいただけると理解が深まると思います。現在のカテゴリー名とその直近の子カテゴリーリストを表示するAboutフリーランスのWebデザイナーです。Web制作/デザイン/写真に関するメモや、仕事/育児/家事の両立に役立ちそうなことも書けたらと思っています。楽天ROOMやってます。reserved...。