- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
テンプレートタグ/get posts
目次
説明
テンプレートタグ get_posts()
は、マルチループ(複数ループ)を作成するためのシンプルなタグです。
使い方
<?php get_posts('引数'); ?>
用例
リストの生成
サイトのフロントページに最新の記事を 1件のみ表示するよう設定していて、その次から 5件かつカテゴリID 1 の記事へのリンクと抜粋文を表示したいとき、次のようにコードを書きます。
<ul> <?php $myposts = get_posts('numberposts=5&offset=1&category=1'); foreach($myposts as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> --- <?php the_excerpt(); ?></li> <?php endforeach; ?> </ul>
注: 上記クエリは、1件以上の記事があるカテゴリで使うべき。
別のリストの生成
ウェブページに 10件の記事をアルファベット順に表示したいとき、投稿日・タイトル・抜粋文を出すには次のようにします。
<?php $postslist = get_posts('numberposts=10&order=ASC&orderby=post_title'); foreach ($postslist as $post) : setup_postdata($post); the_date(); echo "<br />"; the_title(); the_excerpt(); endforeach; ?>
全ての投稿データにアクセス
様々な理由から、デフォルトでは、記事 ID や the_content() 経由での記事本文といったいくつかのデータが get_posts で取得できません。これは、内部関数 setup_postdata()
を $post
配列で呼ぶことにより解決できます。
<?php $lastposts = get_posts('numberposts=3'); foreach($lastposts as $post) : setup_postdata($post); ?> <a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a> <?php the_content(); ?> <?php endforeach; ?>
setup_postdata
を呼ばずに ID 等を取得する別の方法としては、"$post->ID"
や "$post->post_data"
(記事本文)を持ちます。これで内部関数を呼ぶことを避けられます。
(訳注:こちらの方が望ましいのか?)
パラメータ
- numberposts
- (整数) 取得する投稿の数。初期値は
5
。 - offset
- (整数) 先頭から何件の投稿を除外するか。初期値は
0
(除外しない)。 - category
- (整数) 指定したカテゴリID の投稿のみを返す。初期値はなし(全カテゴリ)。
- orderby
- (文字列) どの項目の値で投稿をソート(並べ替え)するか。次の値など:
-
'post_title'
- ページ/記事タイトルのアルファベット順にソート (初期値) -
'post_date'
- 投稿日時順にソート -
'post_modified'
- 最終更新日時順にソート -
'ID'
- 投稿ID でソート -
'post_author'
- 著者の ID 番号でソート -
'post_name'
- 投稿スラッグのアルファベット順にソート - 注: この値は wp_post テーブル のどのフィールド名でも指定できる。
-
- order
- (文字列) ソート順。有効値:
-
'ASC'
- 昇順(値 小→大)にソート -
'DESC'
- 降順(値 大→小)にソート (初期値)
-
最新英語版: WordPress Codex » Template Tags/get_posts
外部リンク
- power source* » WP: テンプレートタグ get_posts で新着記事リスト等を表示 (2007-04-07) -- 各種使用例
関連
記事
- 記事: ループ - WordPress ループ内でのクエリの使い方に関する基本的概要。
- 記事: クエリ概要 - どのクエリが WordPress で生成されているかを判断するための説明。
- 記事: フックを使ったクエリのカスタマイズ
- 記事: MYSQL カスタムセレクトクエリ /en
- 記事: 高度なタクソノミークエリ /en
- 記事: オフセット・ペジネーションを使ったカスタムクエリ /en
コードドキュメンテーション
- クラス: 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()