WordPressではブログ的な投稿ページの他に、固定ページというものが存在します。
固定ページには時間の概念がなく、投稿ページと別の使い方をすることにより、サイト内容がとても充実します。
今回はその固定ページを階層化し、親ページに子ページの一覧を表示する方法を紹介します。
プラグインを使わない方法ですので、細かなカスタマイズも自由自在です!
固定ページの階層化のさせ方

固定ページを作成・編集する際に、右側にあるページ属性部分の親を指定するだけです。
この指定のみで、固定ページが階層化されます。
階層化をやめたい時には親なしを指定し、深く階層化させたい場合には、孫に当たるページで親を作成済みの子ページに指定すればOKです。
子ページ取得ループを作成する
子ページを作成したならば、子ページを取得し一覧表示をするループを作成してみましょう!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $child_posts = query_posts( 'numberposts=-1&order=ASC&orderby=post_title&post_type=page&post_parent=' . $post->ID ); if ( $child_posts ) { foreach ( $child_posts as $child ) { $c_title = apply_filters( 'the_title', $child->post_title ); $c_permalink = apply_filters( 'the_permalink', get_permalink( $child->ID ) ); $c_image_id = get_post_thumbnail_id($child->ID); $c_image_url = wp_get_attachment_image_src($c_image_id, '', true); ?> <div class="child-pages"> <a href="<?php echo $c_permalink; ?>"> <img src="<?php echo $c_image_url[0]; ?>" /> <p><?php echo $c_title; ?></p> </a> </div><!-- .child-pages --> <?php } } ?> |
上記サンプルでは、
- すべての子ページのタイトル(子ページへリンク)
- すべての子ページのアイキャッチ画像(子ページへリンク)
- 一覧表示を囲っているdivタグのクラス名はchild-pages
適宜ご自分の好みに合わせて変更をしてくださいね!
感想
WordPressにてサイト構築を行う場合に、通常の投稿や固定ページ、カスタム投稿タイプなどの様々な機能の使用を考えると思います。それらの機能の中でも、この固定ページを使っている方は多いと思いますし、階層化できたら便利になると思います。
とても簡単に子ページの一覧表示もできましたので、もし自分のサイトに必要だと感じられた方は、ぜひお試しください!
関連記事

WordPressテーマのスタイルシートとは別に、記事やページごとに追加指定したいcssがある場合には、function.phpをカスタマイズすれば可能となります。JavaScriptも同様に可能です。

WordPressをカスタマイズして、記事タイトル一覧のページを作成している方も多いと思います。各タイトルと一緒にアイキャッチ画像を表示すれば、さらに見やすいページができあがります。