• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

テンプレートタグ/wp list pages

提供: WordPress Codex 日本語版
< テンプレートタグ
2009年2月15日 (日) 11:14時点におけるBono (トーク | 投稿記録)による版 (Old(パラメータの追加が必要))

移動先: 案内検索

このページ「テンプレートタグ/wp list pages」は 情報が古くなっている可能性があります。最新版英語)も合わせてご覧ください。最新に更新してくださる協力者を求めています

  • バージョン2.7 でパラメータ 'link_before', 'link_after', 'exclude_tree' が追加されています。

疑問: パラメータ 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 2.0.1 以前)

使用中の 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 というグローバル変数がセットされていないので機能しません。以下のコードを使用してください。

サブページの表示 (WordPress 2.0.1 以降)

注意: サブページがない場合でも、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 : 新規テンプレートタグ


記事

コードドキュメンテーション

  • クラス: WP_Query - WP_Query クエリの詳細概要
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方概要
  • 関数: get_query_var()
  • 関数: query_posts() - 追加カスタムクエリの作成
  • 関数: get_post() - 項目の ID を使ってその投稿のレコードをデータベースから取得する
  • 関数: get_posts() - 項目の配列を返す特別な関数。
  • 関数: get_pages() - ページの配列を返す特別な関数。
  • 関数: have posts() - クエリが記事を返すかどうか判断する条件分岐。
  • 関数: the_post() - クエリの後に自動的にループを設定するのに使われる。
  • 関数: rewind_posts() - 現在のループをクリアする。
  • 関数: setup_postdata() - ループ内で単一クエリ結果のデータを設定する。
  • 関数: wp_reset_postdata() - 以前のクエリを復元する(通常、ループ内のもう一つのループで使われる)。
  • 関数: wp_reset_query()
  • 関数: is_main_query() - 変更するのがメインクエリであるよう保証する。
  • アクションフック: pre_get_posts - 実行される前に WordPress クエリを変更する。
  • アクションフック: the_post - 投稿オブジェクトをクエリの後に変更する。
  • フィルターフック: found_posts - found_posts WP_Query オブジェクトの値を変更する


関連

固定ページ: 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 » Template Tags/wp_list_pages最新版との差分