• 下記は親カテゴリーの取得方法なのはわかります。

    <?php
    $cat = get_the_category();
    $cat = $cat[0];

    $parent = get_category($cat->category_parent);
    $parent_catname = $parent->cat_name;

    echo $parent_catname;
    ?>

    カテゴリーを3階層使用している場合で、任意のカテゴリーを2層目と3層目に指定してポスト公開した場合、上記の記述はまず3層目を取得してparentで1つ前の層(2層目)を取得しているわけですが、3層目から1層目(大元のカテゴリー)を取得するにはどうしたらいいでしょうか?

    カテゴリーとして選択しているのは2層目と3層目のみですが、1層目を取得したいのです。

    ちなみに、カテゴリーとして選択しているのは3層目のみで上記の記述をすると選択していない2層目も取得する仕組みみたいなので、これと同じように2層目と3層目を選択していれば、選択していない1層目でも取得する方法があるはずだと思って質問致しました。

    この仕組みは選択していなくてもカテゴリーを作成する段階で親-子-孫として構造しているためかと思われます。

    宜しくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 三層目から二層目を取得したのに続けて、二層目から一層目を取得する、という二段階を行えばよいと思います。

    トピック投稿者 karisumasaking48

    (@karisumasaking48)

    回答ありがとうございます。

    考え方はわかるのですが、肝心の記述がわからないため、質問させていただいています。

    <?php
    $cat = get_the_category();
    $cat = $cat[0];

    $parent = get_category($cat->category_parent);
    $parents = $parent->category_parent;
    $parent_catname = $parents->cat_name;

    echo $parents_catname;
    ?>

    みたいな感じだとは思うのですが...。

    $parent_catname = $parents->cat_name;$parents がオブジェクトではなく ID なので($parent->category_parent の値が ID なので)正常に動作しません。ここでは $parents が親カテゴリーのオブジェクトであって欲しい訳ですよね。そのためには $parents に対して get_category 関数を使って、カテゴリー ID からカテゴリーオブジェクトを取得できます。使い方は get_category 関数の説明を参照してください。(もう使っておられるのでご存知と思いますが。)

    モデレーター gatespace

    (@gatespace)

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「親カテゴリーではなく、先祖カテゴリーの取得方法」には新たに返信することはできません。