Title: 子ページのリスト表示
Last modified: 2010年9月28日

---

# 子ページのリスト表示

 *  解決済 [igarashi5620](https://ja.wordpress.org/support/users/igarashi5620/)
 * (@igarashi5620)
 * [16年前](https://ja.wordpress.org/support/topic/%e5%ad%90%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%83%aa%e3%82%b9%e3%83%88%e8%a1%a8%e7%a4%ba/)
 * お世話になります。
    以前にも似たような質問しましたが、 下記のコードを「functions.
   php」 に入れてをページ毎に「<?php wp_list_pages_tree2($post); ?> 」使用して子
   ページのリスト表示を実現しています。 ですが、下記のとおり
 * 「サブサービス1」をクリックすると、クリック後のとおり他のページのボタンが表示
   されなくなります。クリックした後も他のページのボタンも表示したままにしたいのですが、
   
   ご指導をお願いします。
 * ■クリック前
    サービス（親ページ） -サブサービス1（子ページ） -サブサービス2（
   子ページ） -サブサービス3（子ページ）
 * ■クリック後
    サービス（親ページ） -サブサービス1（子ページ）
 *     ```
       function wp_list_pages_tree2($post){
       	if(is_page()){
       		$list = $post->ancestors;
       		$parent['list'] = array_reverse($list);
       		$parent['cnt']  = count($list);
       		$parent['top']  = array_pop($list);
   
       		$page_list = get_pages('parent=0&sort_column=menu_order');
       		foreach($page_list as $id){
       			echo ''."\n";
       			if($id->ID == $post->ID){
       				echo "<ul>\n";
       				wp_list_pages('depth=1&title_li=&child_of=' . $post->ID );
       				echo "</ul>\n";
       			}
       			if($id->ID == $parent['top']){
       				$pointer = $parent['list'];
       				$cnt = 0;
       				while($buf = next($pointer)){;
       					echo '<ul>'."\n";
       					echo '<li><a href="'.get_permalink($buf).'">'.get_the_title($buf).'</a>'."\n";
       					$cnt++;
       				}
       				echo '<ul><li><a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a>'."\n";
       				echo "<ul>\n";
       				wp_list_pages('depth=1&title_li=&child_of=' . $post->ID );
       				echo "</ul>\n";
       				for($i=0;$i<$cnt;$i++){
       					echo '</li></ul>'."\n";
       				}
       				echo '</li></ul>'."\n";
   
       			}
       			echo "\n";
       		}
       	}
       	else{
       		wp_list_pages('depth=1&title_li=');
       	}
       }
       ```
   

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

 *  [KKT](https://ja.wordpress.org/support/users/kvex/)
 * (@kvex)
 * [16年前](https://ja.wordpress.org/support/topic/%e5%ad%90%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%83%aa%e3%82%b9%e3%83%88%e8%a1%a8%e7%a4%ba/#post-131792)
 * そんなに長いコード書かなくても
 *     ```
       $parent = get_post_ancestors( $post );
       $children = wp_list_pages("title_li=&include=".$post->post_parent."child_of=".$post->post_parent."&echo=0");
   
       echo $children;
       ```
   
 * このくらいでいけないですかね？（未検証）
 *  トピック投稿者 [igarashi5620](https://ja.wordpress.org/support/users/igarashi5620/)
 * (@igarashi5620)
 * [16年前](https://ja.wordpress.org/support/topic/%e5%ad%90%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%83%aa%e3%82%b9%e3%83%88%e8%a1%a8%e7%a4%ba/#post-131838)
 * kvex　さん
 * ありがとうございました。
    解決できました。

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

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

 * フォーラム: [テーマ](https://ja.wordpress.org/support/forum/themes/)
 * 2件の返信
 * 2人の参加者
 * 最後の返信者: [igarashi5620](https://ja.wordpress.org/support/users/igarashi5620/)
 * 最後の活動: [16年前](https://ja.wordpress.org/support/topic/%e5%ad%90%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%83%aa%e3%82%b9%e3%83%88%e8%a1%a8%e7%a4%ba/#post-131838)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
