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

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

関数リファレンス/get pages

提供: WordPress Codex 日本語版
移動先: 案内検索

説明

ブログにある固定ページの一覧を取得します。 オプションでパラメータにより絞り込むことができます。 固定ページの木構造(階層化された状態)ではなく配列を返します。 固定ページのタイトルを木構造のリスト形式で出力するには、wp_list_pages() テンプレートタグを参照してください。

また 'post_type' パラメータを使って、他の投稿タイプを取得することもできます。 ただし、その投稿タイプは固定ページのような階層を持つものでなければならず、そうでなければこの関数は false を返します。

概ね get_posts() に似ていますが、いくつかのパラメータの名前や値が異なるので注意してください。(内部の実装はまったく違っています。)

使い方

<?php get_pages( $args ); ?>

デフォルトの使い方

<?php $args = array(
	'sort_order' => 'ASC',
	'sort_column' => 'post_title',
	'hierarchical' => 1,
	'exclude' => '',
	'include' => '',
	'meta_key' => '',
	'meta_value' => '',
	'authors' => '',
	'child_of' => 0,
	'parent' => -1,
	'exclude_tree' => '',
	'number' => '',
	'offset' => 0,
	'post_type' => 'page',
	'post_status' => 'publish'
); 
$pages = get_pages( $args ); 
?>

パラメータ

sort_column 
(文字列) 固定ページのリストを幾つかの異なる方法でソートします。デフォルトはタイトルのアルファベット順です。
  • 'post_title' - タイトルのアルファベット順にソート。 - デフォルト
  • 'menu_order' - 固定ページの順序でソート。
注意:固定ページの 順序ID は違います。ID は WordPress がすべての投稿や固定ページに割り当てるユニークな数値です。順序 はユーザーが管理画面の 固定ページを編集 » ページ属性 /en でセットできます。
  • 'post_date' - 作成日でソート。
  • 'post_modified' - 最終更新日でソート。
  • 'ID' - 固定ページの ID(数値)でソート。
  • 'post_author' - 固定ページの作成者の ID(数値)でソート。
  • 'post_name' - 固定ページのスラッグのアルファベット順にソート。WP 3.3 では未サポート(trac チケット #14368 を参照)
参考: 'sort_column' パラメータを使って、WordPress データベースの wp_post テーブルにある任意のフィールドで固定ページのリストをソートできます。便利な例を幾つか後で示します。
参考: get_posts() は 'sort_column' の代わりに 'orderby' パラメータを使います。また get_posts() は、次の値に対してのみ自動的に 'post_' を前に付けます:'author', 'date', 'modified', 'parent', 'title', 'excerpt', 'content'</tt>.
sort_order 
(文字列) 固定ページのリストのソート順を変更します(昇順または降順)。デフォルトは昇順です。有効な値は:
  • 'ASC' - 昇順 (最小から最大へ) - デフォルト
  • 'DESC' - 降順 (最大から最小へ)
参考: get_posts() は 'sort_order' の代わりに 'order' パラメータを使います。
exclude 
(文字列 | 配列) リストから除く固定ページの ID をコンマ区切りの文字列で指定します(例:'exclude=3,7,31')。バージョン 3.0 から、固定ページ ID の配列を指定できます。デフォルト値はありません。
include 
(文字列 | 配列) 指定した固定ページのみを get_pages() が返すリストに入れます。'exclude' と同様に、固定ページの ID をコンマ区切りで指定します。バージョン 3.0 から、固定ページ ID の配列を指定できます。デフォルト値はありません。
参考: このパラメータを指定すると、'child_of', 'parent', 'exclude', 'meta_key' および 'meta_value' パラメータは無視され、'hierarchical'false になります。
child_of 
(整数) ある一つの固定ページの子ページをリストします。親とする固定ページの ID を指定します。デフォルトは 0 です(すべての固定ページをリスト)。'child_of' パラメータを指定すると指定した ID の直接の子だけでなく、「孫」も取得することに注意してください。
  • 0 - デフォルト。child_of による絞り込みを行わない。
参考: 'child_of' パラメータは固定ページの SQL クエリに適用されません。クエリの結果に対して適用されます。そのため、'number' パラメータを一緒に指定すると最終結果が 'number' で指定した数より少なくなる場合があります。
parent 
(整数) 指定した一つの ID を親に持つ固定ページのみをリストします。デフォルトは -1 です(親に関係なくすべての固定ページをリスト)。'parent' を指定した場合は 'hierarchical' パラメータを 0 (false) にしなければならないことに注意してください(デフォルト値ではありません)。そうしないと、トップレベル以外の固定ページは一つも返されません。 'child_of' パラメータとは対照的に、このパラメータは親の直接の子のみを返し、「孫」は含みません。'hierarchical' を 0 (false) にする制約を避けるには、'child_of' パラメータに同じ(親の)ID を指定することができます。
  • -1 - デフォルト。'parent' による絞り込みを行わない。
  • 0 - トップレベルの固定ページをすべて返す。
exclude_tree 
(整数) 'child_of' の反対に、'exclude_tree' は指定された ID のすべての子を結果から取り除きます。ある固定ページのすべての子を隠すのに便利です。子だけでなく孫の固定ページも除外されます。このパラメータはバージョン 2.7 から利用可能です。
hierarchical 
(真偽値) 子の固定ページを親に続けてリストするか、固定ページを一列にリストするか。デフォルトは true です(子の固定ページを親に続けてリスト)。有効な値は:
  • 1 (true) - デフォルト
  • 0 (false)
注意: このパラメータがデフォルトの場合、子ページ検索において 'meta_key''parent' は条件に含められません。これらのパラメータが適切に動作するためには 'hierarchical' を 0 (false) にする必要があります。
meta_key 
(文字列) 指定されたカスタムフィールドのキーを持つ固定ページのみを含めます('meta_value' パラメータと一緒に使います)。
meta_value 
(文字列) 指定されたカスタムフィールドの値を持つ固定ページのみを含めます('meta_key' パラメータと一緒に使います)。
authors 
(文字列) 指定された作成者の固定ページのみを含めます。
参考: get_posts() は 'authors' の代わりに 'author' を使います。
number 
(整数) リストに含める固定ページの数を指定します。これを指定すると SQL LIMIT の値が定義されます。デフォルトは LIMIT 無しです。このパラメータはバージョン 2.8 から利用可能です。
参考: get_posts() は 'number' の代わりに 'numberposts' を使います。
注意: 'child_of' と一緒に指定すると動作しません。そうしたければ代わりに 'parent' を指定し、さらに 'hierarchical'false にしてください。
offset 
(整数) 固定ページの検索結果を取得する前にスキップする数を指定します。デフォルトは OFFSET 無しです。このパラメータはバージョン 2.8 から利用可能です。
post_type 
("文字列") 指定したタイプの固定ページをリストします。有効な値は:
  • 'post' - 投稿。
  • 'page' - 固定ページ。
  • 'revision' - リビジョン。
  • 'attachment' - 添付ファイル。
  • カスタム投稿タイプ。
注意: 階層を持つ投稿タイプだけが有効です。
post_status 
(文字列) リストに含める固定ページの公開状態をコンマ区切りで指定します。例えば 'publish,private,draft' のように。

戻り値

(配列) 
要求された条件にマッチしたすべての固定ページのオブジェクトを含む配列。失敗した場合は false を返します。

固定ページオブジェクトは 24 個のキーを持つマップです:

  • ID: 固定ページ/投稿 ID (整数)
  • post_author: 作成者 ID (文字列)
  • post_date: 日時を表す文字列 (YYYY-MM-DD HH:MM:SS)、例えば "2012-10-15 01:02:59"
  • post_date_gmt: 日時を表す文字列
  • post_content: HTML (文字列)
  • post_title: タイトル (文字列)
  • post_excerpt: HTML (文字列)
  • post_status: (publish|inherit|pending|private|future|draft|trash)
  • comment_status: closed/open
  • ping_status: (closed|open)
  • post_password: パスワード (文字列)
  • post_name: 固定ページ/投稿のスラッグ
  • to_ping
  • pinged
  • post_modified: 日時を表す文字列
  • post_modified_gmt: 日時を表す文字列
  • post_content_filtered
  • post_parent: parent ID (整数)
  • guid: URL
  • menu_order: (整数)
  • post_type: (page|post|attachment)
  • post_mime_type
  • comment_count: コメントの数 (文字列)
  • filter

(整数) のように明示してあるものを除き、値は文字列形式です。

用例

ページをドロップダウンリストで表示

この例は、一つのドロップダウンにすべての固定ページをリストします。 固定ページへのリンクを取得する方法の参考として get_page_link 関数の簡単な呼び出し(そのページの ID を渡す)も含めています。

<select name="page-dropdown"
 onchange='document.location.href=this.options[this.selectedIndex].value;'> 
 <option value="">
<?php echo esc_attr( __( 'Select page' ) ); ?></option> 
 <?php 
  $pages = get_pages(); 
  foreach ( $pages as $page ) {
  	$option = '<option value="' . get_page_link( $page->ID ) . '">';
	$option .= $page->post_title;
	$option .= '</option>';
	echo $option;
  }
 ?>
</select>

現在のページの子ページを投稿形式で表示

<?php
	$mypages = get_pages( array( 'child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc' ) );

	foreach( $mypages as $page ) {		
		$content = $page->post_content;
		if ( ! $content ) // Check for empty page
			continue;

		$content = apply_filters( 'the_content', $content );
	?>
		<h2><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h2>
		<div class="entry"><?php echo $content; ?></div>
	<?php
	}	
?>

変更履歴

  • 新規導入: 1.5.0

ソースファイル

get_pages()wp-includes/post.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_Query - WP_Query クラスの詳細な全容
  • クラス: WP_Comment_Query - コメント関連のクエリのためのクラス
  • クラス: WP_User_Query - ユーザー関連のクエリのためのクラス
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方全容
  • 関数: set_query_var()
  • 関数: 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 - post クエリの後で post オブジェクトを変更する
  • フィルターフック: found_posts - WP_Query オブジェクトの found_posts 値を変更する


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/get_pages最新版との差分