▽1
●
rouge_2008 ●100ポイント ベストアンサー |
固定ページのリンクは「wp_list_pages()」で取得・表示できます。
次のコードを子ページのループ内の任意の箇所(※リンクを表示したい場所)に記述します。
※自作したコードの孫ページのループ内には記述しないでください。
$page_id = get_the_ID(); $ancestors_ids = get_ancestors( $page_id, 'page' ); // 子ページだけに表示する(※2階層目のページを判定する)条件分岐 if ( count( $ancestors_ids ) == 1 ) { $args = array( // 表示するページを指定したIDページの子孫に限定します。 'child_of' => $page_id, // 任意のタイトルを表示する場合は次行をコメントアウトします。※デフォルトで「固定ページ」と表示されます。(タイトルを表示しない場合は空文字「''」を指定します。) // 'title_li' => '任意のタイトル', 'echo' => 0 ); $page_lists = wp_list_pages($args); if ( $page_lists ) { echo "<ul>\n" . $page_lists . "</ul>\n"; } }
・テンプレートタグ/wp list pages
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_list_pages
※「子ページのループ内」とは、固定ページを表示する為の通常のループ内の事です。
通常、固定ページは「page.php」で表示されますが、次の記述のようなページのループは一つだけあるはずです。
<?php while ( have_posts() ) : the_post(); ?> ※ ここがページの内容を表示する為のループになります ※ <?php endwhile; // end of the loop. ?>
親、子、孫、ひ孫の各ページにアクセスした際に、すべての固定ページが上記のループによって表示されます。
子ページにアクセスした際は上記が子ページのループとなりますので、上記のループ処理内に記述します。
※ループ内の処理でさらに孫ページのリンクを表示する為のループを作成している場合は、その中には記述しないでください。(自作したコードは一旦コメントアウトするか、削除してから利用してください。)