• 固定ページの親子ページのリスト出力について質問です。

    現在下記のような感じで固定ページを作成しています。

    親)A
    子)A-1、A-2

    親)B
    子)なし

    固定ページのサイドバーにメニューを作りたいのですが、
    A、A-1、A-2にいるときは

    ・A
    ・A-1
    ・A-2

    Bにいるときは

    ・B

    のように親を基点として、親と子のリンクリストを表示させたいです。

    そこで検索して

    <?php
    $current_page_id = get_the_ID();
    $ancestor = array_pop( get_post_ancestors( $current_page_id ) );
    if( empty( $ancestor ) ){
    $my_id = $current_page_id;
    $add_query = ‘&title_li=‘.get_the_title().’‘;
    }else{
    $my_id = $ancestor;
    $add_query = ‘&title_li=‘.get_the_title( $my_id ).’‘;
    }
    wp_list_pages(‘child_of=’.$my_id.$add_query);
    ?>

    としたのですが、子ページない親ページ(B)では、親ページのリンクが表示ず何もない状態です。Aではうまく表示されています。

    コードを読んではいるのですが、phpは初心者でどこをどうしていいのかわかりません。

    お力添え戴ければ幸いです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 初めまして。

    日本語版Codexを見ると、wp_list_pages()はWordPress ページを入れ子で順不同のリストを戻り値とするようです。
    子ページがない場合、何も返却しないため、親ページ(B)では、親ページのリンクを含め何も表示していないようです。

    以下のように一度子ページがあるか判定してから表示を行えば良いのでは?

    $children=wp_list_pages('child_of='.$my_id.$add_query);
    if ($children) {
        $output = wp_list_pages('child_of='.$my_id.$add_query);
    }
    else {
         $output = 子ページ無しの場合のリンク表示文字;
    }
    echo $output;

    参考までに公式フォーラムで似たような記事を紹介します。
    サイドバーに子ページのリストをカスタマイズして表示したい

    トピック投稿者 ryoji.nakashima

    (@ryojinakashima)

    shirakobato様

    子ページの有無を判断してからということに気付きませんでした。
    試してみます。

    ありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「固定ページで親子ページのリスト出力」には新たに返信することはできません。