2013-05-10 21 views
9

例:私はについてのページにいる場合どのようにWordPressの親ページのすべての子ページを取得するには?

About 
--- Menu 1 
--- Menu 2 
--- Menu 3 
--- Menu 4 

...私はサブページがあります。 はしかし、メニューに入力した場合は1つの、すべてのページは現在、私はこのコードを

<? if (is_page()) { 
    $g_page_id = $wp_query->get_queried_object_id(); 
    wp_list_pages("depth=4&title_li=&child_of=".$g_page_id."&sort_column=menu_order"); 
    } 
?> 

感謝を持ってどのような私はすべての時間を親ページ

を見ている必要

を消えます!

は私がこれを使用すると、正常に動作

を解決します!

<?php if (is_page()) { ?> 

       <?php 
       if($post->post_parent) 
       $children = wp_list_pages('title_li=&child_of='.$post->post_parent.'&echo=0'); else 
       $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0'); 
       if ($children) { ?> 

       <div class="title"><?php 
       $parent_title = get_the_title($post->post_parent); 
       echo $parent_title; 
       ?><span></span></div> 

       <ul> 
        <?php echo $children; ?> 
       </ul> 

       <?php } } ?> 
+1

次回は検索してみるべきです。これを試すhttp://stackoverflow.com/questions/9190427/how-to-get-all-child-pages-of-a-page-by-the-parent-page-title-in-wordpress –

+0

このコードは私のために働く、私はエラーがあった。 – krathos

答えて

7

ここに移動します。著者に少し遅れますが、人々は答えのためにここに来ます;-)

<?php 
// determine parent of current page 
if ($post->post_parent) { 
    $ancestors = get_post_ancestors($post->ID); 
    $parent = $ancestors[count($ancestors) - 1]; 
} else { 
    $parent = $post->ID; 
} 

$children = wp_list_pages("title_li=&child_of=" . $parent . "&echo=0"); 

if ($children) { 
?> 

    <ul class="subnav"> 
     <?php 
      // current child will have class 'current_page_item' 
      echo $children; 
     ?> 
    </ul> 

<?php 
} 
?> 
+2

あなたはすでに '$ post-> post_parent'に親のIDを持っていますので、' get_post_ancestors'を使って親を取得するのはなぜですか? –

関連する問題