サポート » 使い方全般 » ページの階層番号を取得する方法

  • 解決済 goodtimes

    (@goodtimes)


    お世話になります

    タイトルどおりなのですが、
    現在表示しているページの階層番号を取得するにはどうしたらいいのでしょうか?

    現在は以下のようなページ構成です

    >AA
    >>>AAA
    >>>>AAAA
    >>>>>AAAAA

    で、例えばAAAが表示されているときのAAAのページ階層位置?を知りたいのです
    (取得できる値は「3」と思っています)
    そこからは、階層位置が5以上ならサイトの振る舞いを変えたりしたいと思っています

    調べていたら、depthという単語が引っかかってきたので、
    $post->depthでいけるのかな?と思いましたが、まったく無視されてしまいました

    どなたかご教示いただけませんでしょうか
    よろしくおねがいします

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 goodtimes

    (@goodtimes)

    post.php(wp-includesのなか)で、
    get_page_hierarchyというものを見つけました

    名前からしていかにもページ階層取得してくれそうなので、先ほどから試行錯誤しているのですが
    どうしたらいいのかまったくわかりません・・
    この関数自体、ページ階層取得に無関係なのでしょうか・・?

    現在のわたしが書いているのは以下です

    <?php $depth = get_page_hierarchy($posts,$post->post_parent); ?>
    <?php if(empty($depth)) {
      echo (“depth is empty”); }
    else{
      echo (“you’ve got depth!”);
    //配列がはいる?(A AA AAA のように?)
      $depth = array($depth);
      //よって 配列の中に収められているものの数をカウントしてみた
      $depth = count($depth);
    echo ($depth);
    }?>

    //コメントでかいたとおり、get_page_hierarchyで取得する値は、配列?なのだと理解し、
    count($depth)で数を数えたら、その数=階層位置になると思っているのですが

    これだと全部 depthは1 になります…

    どこからまちがっているんでしょうか・・
    それとも、この関数自体、ページ階層取得と無関係なものでしょうか?

    ご存知の方、ご教示いただけませんでしょうか

    モデレーター jim912

    (@jim912)

    goodtimesさん、こんにちは。

    get_post_ancestors()で取得した配列をcountして1足せば、ページ階層になるかと思いますが、お考えになっていることと違いますか?

    トピック投稿者 goodtimes

    (@goodtimes)

    jim912さん

    こんにちは
    ご回答ありがとうございます

    お考えになっていることと違いますか?

    あってます!
    仰る方法でばっちり取得できました!
    感謝いたします!
    ありがとうございました!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「ページの階層番号を取得する方法」には新たに返信することはできません。