! 各ページ右上の画像広告経由でコンピュータウィルスがダウンロードされた可能性があります。ウィルスチェックをお願いします。詳しくは http://bono.s201.xrea.com/2008/06/693-virus_by_xrea_ad/ をご覧ください。ご迷惑をおかけしてしまい大変申し訳ありません。
テンプレートタグ/wp list pages
出典: ps*wiki
疑問: パラメータ hierarchical の説明に疑問があります。このページのノートをご覧ください。
テンプレートタグ wp_list_pages() は WordPress ページへのリンクのリスト (以下ページリストとする) を表示します。しばしばサイドバー/en やヘッダー/en をカスタマイズするのに使われますが、他のテンプレートにも同様に使えるかもしれません。
このテンプレートタグは WordPress 1.5 以降で使用できます。
<?php wp_list_pages('arguments'); ?>
$defaults = array(
'depth' => 0,
'show_date' => '',
'date_format' => get_option('date_format'),
'child_of' => 0,
'exclude' => '',
'title_li' => __('Pages'),
'echo' => 1,
'authors' => '',
'sort_column' => 'menu_order, post_title');
デフォルトでは以下のように動作します。
- すべてのページとサブページを表示します (階層制限はありません)
- ページの作成日は表示しません
- すべてのページの子ページに関する制限はありません
- 除外されるページはありません
- リストの見出しが「ページ」となります
- 結果は echo されます (表示されます)
- ページの作成者による制限はありません
- ページのタイトル順にソートされます
- 昇順にソートされます (上述の例には載っていません)
- ページの親子関係をインデントして表示します (上述の例には載っていません)
- すべてのページが含まれます (上述の例には載っていません)
- 特定のメタキーやメタ情報による制限はありません (上述の例には載っていません)
wp_list_pages();
wp_list_pages が表示するページリストのデフォルトの見出し (「ページ」) は title_li パラメータに空の値を入れると表示しなくすることができます。以下の例はページリストの上に見出しのテキストを表示しません。
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>
下記の例では ID が 9, 5, 23 のページだけを表示し、見出しのテキストを「Poetry」に置き換え、タグを <h2> に変更しています。
<ul>
<?php wp_list_pages('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
</ul>
下の例では 作成 > ページ で設定されたページ順序に従ってページリストを表示します。
<ul>
<?php wp_list_pages('sort_column=menu_order'); ?>
</ul>
もしページ順序に従ってページリストを表示し、サイドバーに表示される見出しを「Prose」 (h2 タグスタイルで) と表示したい場合は、下のコードを sidebar.php ファイルに追加してください (サイドバーウィジェットを使用している場合は管理画面から)。
<ul>
<?php wp_list_pages('sort_column=menu_order&title_li=<h2>' . __('Prose') . '</h2>' ); ?>
</ul>
以下のコードを使うと、見出しなしでページ順序に従い表示します。
<ul>
<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
</ul>
この例はページの作成日でソートし、その日付をページごとに表示します。
<ul>
<?php wp_list_pages('sort_column=post_date&show_date=created'); ?>
</ul>
exclude パラメータを使うと、wp_list_pages が表示するページリストから特定のページを除外することができます。あるページを除外すると、そのページのサブページも同時に除外されます。
<ul>
<?php wp_list_pages('exclude=17,38' ); ?>
</ul>
特定のページだけをリストに含めたい場合 (例えば ID が 35, 7 ,26, 13 のページ) は、include パラメータを使用します。
<ul>
<?php wp_list_pages('include=7,13,26,35&title_li=<h2>' . __('Pages') . '</h2>' ); ?>
</ul>
使用中の WordPress のテーマの page.php テンプレートの the_post() セクション内の the_content() の後にこれを追加するか、サブページがあるページの page.php テンプレートのコピーに追加します。
<ul>
<?php
global $id;
// teensy bit insane, sorry
$date_format = '<\b\r /><\s\p\a\n '.
'\s\t\y\l\e="\f\o\n\t-\s\i\z\e: \s\m\a\l\l\e\r">'.
'\l\a\s\t\m\o\d Y-n-j</\s\p\a\n>';
wp_list_pages("title_li=&child_of=$id&show_date=modified
&date_format=$date_format"); ?>
</ul>
注意: この例は WordPress 2.0.1 以降ではページテンプレートに追加しても $id というグローバル変数がセットされていないので機能しません。以下のコードを使用してください。
注意: サブページがない場合でも、HTML タグ (<ul> や <ol>) が表示されます。スタイルシートを使ってリストのデザインをしている場合はこのことを覚えておいてください。
<ul>
<?php wp_list_pages('title_li=&child_of='.$post->ID.'&show_date=modified
&date_format=$date_format'); ?>
</ul>
以下の例は表示中のページに子ページ (表示中のページを親ページと設定しているページ) が存在する場合のみリストを表示します。
<?php
$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
上述の例では親ページでは子ページを表示しますが、子ページでは表示しません。次のコードは親ページでも子ページでも、子ページのリストを表示します。
警告: このコードはウィジェットを使っている場合は機能しません。
<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
デフォルトでは、wp_list_pages() は 作成 > ページ で作成した WordPress ページを入れ子で順不同のリストに表示します。あなたは最外部のアイテム (li.pagenav) をなくすことも、title_li パラメータを空の値にすることもできます。
wp_list_pages() が表示するすべてのリストアイテム (li) には page_item というクラスが付けられています。wp_list_pages() をページ表示時に呼び出すと、そのページを指すリストアイテムには current_page_item というクラスが追加されます。
<li class="pagenav">
Pages
<ul>
<li class="page_item current_page_parent">
[parent of the current page]
<ul>
<li class="page_item current_page_item">
[the current page]
</li>
</ul>
</li>
<li class="page_item">
[another page]
</li>
</ul>
</li>
これらは CSS セレクタでデザインできます。
.pagenav { ... }
.page_item { ... }
.current_page_item { ... }
.current_page_parent { ... }
- sort_column
- (文字列) ページのリストをいろいろな順序で並び替えます。デフォルトでは'ページタイトルのアルファベット順に並び替えます
- 'post_title' - (タイトルを) アルファベット順に並び替えます - デフォルト
- 'menu_order' - ページ順序によって並び替えます。要注意: ページ順序とページ ID に注意してください。ページ ID はそれぞれの記事やページにつけられた唯一の番号です。ページ順序は 作成 > ページ でユーザーがつける番号のことです。上述の例をお読みください
- 'post_date' - 作成日順に並び替えます
- 'post_modified' - 最終更新日順に並び替えます
- 'ID' - ページ ID 順に並び替えます
- 'post_author' - ページ作成者の ID 順に並び替えます
- 'post_name' - ページスラッグ (パーマリンク) のアルファベット順に並び替えます
注意: sort_column パラメータは WordPress のデータベースの wp_post テーブル内のあらゆるフィールドの記述子を使ってページのリストを並び替えることができます。
- sort_order
- (文字列) ページリストの並び順を変更します (昇順または降順)。デフォルトは昇順です
- 'asc' - 低いほうから高いほうへ並び替えます
- 'desc' - 高いほうから低いほうへ並び替えます
- exclude
- (文字列) リストから除外したいページの ID をコンマで区切ったリストで定義します (例: 'exclude=3,7,31')。デフォルト値はありません。特定のページを除外する例をお読みください。
- include
- (文字列) wp_list_pages で表示されるリストに特定のページだけを含めます。exclude と同様に、このパラメータもコンマで ID を区切ったリストで定義します。特定のページだけを含める例をお読みください
- depth
- (整数) このパラメータは wp_list_pages で表示されるリストに含めるページの階層レベルを設定します。デフォルト値は 0 です (すべてのページとサブページを表示します)。
- 0 - ページとサブページを親子関係を維持して (インデントして) 表示します (デフォルト)
- -1 - ページとサブページを同列に (インデントなし) 表示します
- 1 - トップレベルのページのみ表示します
- 2 - 2 (またはそれ以上) の深さ (レベル) のページを表示します
- child_of
- (整数) ページ ID を値としてそのページのサブページを表示します。デフォルト値は 0 です (すべてのページを表示)。
- show_date
- (文字列) それぞれのページの作成日または最終更新日を表示します。デフォルト値は空です (日付を表示しません)。
- '' - 日付を表示しません (デフォルト)
- 'modified' - 最終更新日を表示します
- 'xxx' - modified 以外の値は作成日 (post_date) を表示します。上述の例をお読みください
- date_format
- (文字列) show_date パラメータで使うページの日付の書式を設定します (例: "l, F j, Y")。このパラメータは WordPress の管理画面で設定した日付フォーマットをデフォルトとします。日付と時刻の書式と PHPマニュアルの日時の書式化のページをお読みください
- title_li
- (文字列) ページリストの見出しのテキストとスタイルを設定します。デフォルトは「__('Pages')」です。ブログ上では「ページ」と表示されます (__('') はローカライゼーションのためのものです)。空の値のとき ('') は見出しを表示しません。また、リストは <ul>, </ul> タグで包まれていません。見出しの例をお読みください
- echo
- (論理値) ページリストを表示するか、PHP で使うために HTML テキストとして返すかを設定します。デフォルト値は 1 (リストを表示) です。
- 1 (true) - デフォルト
- 0 (false)
- hierarchical
- (論理値) サブページを親ページの下にインデントして表示するかインラインで表示するかを設定します。デフォルトは true です (サブページを親ページの下にインデントして表示)
- 1 (true) - デフォルト
- 0 (false)
- meta_key
- (文字列) ここに記述したカスタムフィールドキーを持つページだけを表示します (meta_value フィールドと同時に使います)。
- meta_value
- (文字列) ここに記述したカスタムフィールド値を持つページだけを表示します (meta_key フィールドと同時に使います)。
変更履歴
- 1.5 : 新規テンプレートタグ
bloginfo, bloginfo_rss, get_bloginfo, get_bloginfo_rss, wp_title, get_archives, wp_get_archives, get_calendar, get_posts, wp_list_pages, wp_dropdown_pages, wp_loginout, wp_register, query_posts, rss_enclosure
原文・最新版: WordPress Codex » Template Tags/wp_list_pages (最新版との差分)
