WordPressページで目次を自動生成する
WordPressページで、目次を自動生成するするようにしてみたよ。
全てのページで目次が表示されるとウザイので、いま表示しているページに子ページ(サブページ)がある場合のみ、目次を生成・表示するようにしました。実際のコードはこんな感じです。
< ?php $children = wp_list_pages('title_li=&sort_column=menu_order&child_of='.$post->ID.'&echo=0') ; if( $children ) { ?> <ul> < ?php echo $children; ?> </ul> < ?php } ; ?>
簡単に説明すると、wp_list_pages関数で、現在のページの子ページを取得し、子ページがあればULリスト形式で表示を行います。
上記コードの実際の表示例は『NTSCについて – Hinemosu』を参照してください。
応用例
「目次表示」でやってることは単純だけど、前提条件を工夫して親ページでのみ目次を表示すれば「グローバルナビゲーション→各項目表示時に関連タイトルを一覧表示」とかも出来そう。たぶんこんな感じ。
if (is_page() && !$post->post_parent) {(実行文)} ;
現在位置が「WordPressページ」で、且つ親ページを持っていない(サブページではない)場合にのみ「実行文」が処理されます。「実行文」で、サイドバーなどに目次表示を行えば、良くある企業っぽいサイトナビゲーションを構築できそうだ。
いやーWordPressは良く出来てるな。
ディスカッション
コメント一覧
まだ、コメントがありません