- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
テンプレートタグ/wp page menu
目次
説明
このテンプレートタグは WordPress ページ をリンクとしてリスト表示します。そして表示されるページに ホーム を自動的に追加することができます。このタグは、サイドバーのカスタマイズ/en あるいは ヘッダの設計/en をカスタマイズするのに便利ですし、他のテンプレートでも使えるかもしれません。
使い方
<?php wp_page_menu( $args ); ?>
デフォルトの使い方
<?php $args = array( 'depth' => 0, 'sort_column' => 'menu_order, post_title', 'menu_class' => 'menu', 'include' => '', 'exclude' => '', 'echo' => true, 'show_home' => false, 'link_before' => '', 'link_after' => '' ); ?>
デフォルトの設定は以下の通りです。
- すべてのページと子孫ページを表示(階層の制限無し)
- ページの順序とタイトルで並べ替える
- div タグのクラスは
'menu'
- どのページも除外しない
- 強制的に含めるページの指定無し
- 出力をエコーする(表示する)
- リンク前後のテキスト無し
- ページのリストに "ホーム" を追加しない
- 参考:出力は <ul> と </ul> タグで囲まれます。
パラメータ
- depth
- (整数) wp_list_pages が生成するリストに、ページ階層の何レベル分を含めるか指定します。デフォルトは 0 です(子孫ページも含め、すべてのページを表示)。
- 0 (デフォルト) - すべての階層のページを入れ子形式のリストで階層を付けて表示
- -1 - すべての階層のページをフラットなリストで階層を付けずに表示
- 1 - 最上位のページのみ表示
- 2, 3 - 指定した階層までのページを表示
- sort_column
- (文字列) ページの指定された属性によってページのリストを並べ替えます。デフォルトは ページの順序でソート さらに ページタイトルのアルファベット順 です。 sort_column パラメータにより、WordPress データベースの wp_post テーブルにある任意のフィールドの記述子を使ってソートすることができます。以下に便利な例を示します。
- 'post_title' - ページタイトルのアルファベット順にソート。
- 'menu_order' - ページの順序でソート。ページの順序とページ ID の違いに注意してください。ページ ID は WordPress がすべての投稿や固定ページに割り当てるユニークな数値です。ページの順序はユーザーが管理画面でセットできます(管理画面 » 固定ページ » 編集)。
- 'post_date' - 投稿日時でソート。
- 'post_modified' - 最終更新日時でソート。
- 'ID' - ページ ID でソート。
- 'post_author' - ページの作成者の ID でソート。
- 'post_name' - 投稿スラッグのアルファベット順でソート。
- menu_class
- (文字列) その中にリストを表示する div タグのクラス。デフォルトは menu です。
- include
- (文字列) コンマ区切りの ID で指定されたページのみをリストします。例:
wp_page_menu('include=2,14')
は ID が 2 と 14 のページのみをリストします。
- exclude
- (文字列) リストから除外するページの ID をコンマ区切りで指定します(例:'exclude=3,7,31')。デフォルト値はありません。用例「特定のページを除外する」が参考になります。
- exclude_tree
- (文字列) 除外する親ページの ID をコンマ区切りで指定します。このパラメータは、指定したページと、その子孫ページすべてを除外します。例えば 'exclude_tree=5' は ID が 5 のページと子孫ページすべてを除外します。
- echo
- (真偽値) 生成したリンクのリストを表示するか、PHP で扱える HTML テキスト(文字列)としてリストを返すかを指定します。デフォルト値は 1 です(表示する)。有効な値は:
- 0 (False)
- 1 (True) - デフォルト
- show_home
- (真偽値) 固定ページのリストの先頭に "ホーム" を追加します。"ホーム" に割り当てられる URL は 管理画面 » 設定 » 一般設定 の サイトアドレス (URL) です。デフォルト値は 0 です(リストに "ホーム" を表示しない)。有効な値は:
- 0 (False) - デフォルト
- 1 (True)
- <任意のテキスト> - "ホーム" の代わりにするテキスト(
show_home
は true として扱われる)
- link_before
- (文字列) <a> タグ内のリンクテキストに前置するテキストまたは HTML を設定。
- link_after
- (文字列) <a> タグ内のリンクテキストに後置するテキストまたは HTML を設定。
戻り値
- (文字列)
- メニューの HTML が返されます。ただし
'echo'
パラメータが false の場合のみ。
用例
ページリストにホームを表示する
次の例は、表示されるページリストに "ホーム" を追加します。さらに、ページは div 要素で括られ、ページ ID 5, 9, および 23 は表示されず、ページの順序に従って表示されます。このリストには "Page Menu" というタイトルが付けられます。
<h2>Page Menu</h2> <?php wp_page_menu('show_home=1&exclude=5,9,23&menu_class=page-navi&sort_column=menu_order'); ?>
ホームを Blog という名前で表示する
固定ページのリストの先頭に "Blog" を("ホーム" の代わりに)追加します。
<?php wp_page_menu( array( 'show_home' => 'Blog', 'sort_column' => 'menu_order' ) ); ?>
ホームのみを表示する
次の例は、"ホーム" だけを表示します。include=9999 が存在しないページ ID を示すので、ホームへのリンクのみが表示されます。
<?php wp_page_menu('show_home=1&include=9999'); ?>
メニュー項目の CSS クラス
以下のクラスがメニュー項目、すなわち wp_page_menu()
が生成する HTML <li> タグに適用されます。
すべてのメニュー項目
- .page_item
固定ページに対応するメニュー項目へ追加されるクラス。 - .page_item-$ID
$ID を固定ページの ID として、そのページに対応するメニュー項目へ追加されるクラス。
現在のページに対応するメニュー項目
- .current_page_item
現在表示されている固定ページに対応するメニュー項目へ追加されるクラス。
現在のページの親ページに対応するメニュー項目
- .current_page_parent
現在表示されている固定ページの親ページ(一つ上の階層)に対応するメニュー項目へ追加されるクラス。
現在のページの子孫ページに対応するメニュー項目
- .current_page_ancestor
現在表示されている固定ページを親とする子孫ページ(下の階層)に対応するメニュー項目へ追加されるクラス。
参考
- wp_list_pages() もご覧ください。
変更履歴
ソースファイル
wp_page_menu() は wp-includes/post-template.php
にあります。
関連資料
固定ページ: get_all_page_ids(), get_ancestors(), get_page_link(), get_page_by_path(), get_page_by_title(), get_page_children(), get_page_hierarchy(), get_page_uri() /en, get_pages(), is_page(), page_uri_index() /en, wp_list_pages(), wp_page_menu()
リスト・ドロップダウン関数: wp_list_authors(), wp_list_categories(), wp_list_pages(), wp_list_bookmarks(), wp_list_comments(), wp_get_archives(), wp_page_menu(), wp_dropdown_pages(), wp_dropdown_categories(), wp_dropdown_users()
最新英語版: WordPress Codex » Function Reference/wp_page_menu (最新版との差分)