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

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

テンプレートタグ/get posts

提供: WordPress Codex 日本語版
< テンプレートタグ
2007年10月1日 (月) 23:47時点におけるBono (トーク | 投稿記録)による版 (パラメータ: 2.1(たぶん)から追加されたパラメータを追加。まだドラフト)

移動先: 案内検索

テンプレートタグ 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 バージョン 2.1 以降で指定できます。2.0.x 系では使えません。

このページはラフドラフトで、まだ内容の検証が済んでいません。情報が間違っていたり書き直されることがあります。これ以降

include
文字列) 特定の投稿のみを取得したいとき、投稿ID をカンマ区切りで指定。例えば、'include=4,12' とすれば、記事ID 4 と 12 の記事データのみを返す。このパラメータを指定すると、offset, category, exclude, meta_key, meta_value, post_parent パラメータの指定は無視される。初期値はなし(指定なし)。
exclude
文字列) 特定の投稿を除外したいとき、投稿ID をカンマ区切りで指定。例えば、'exclude=4,12' とすれば、記事ID 4 と 12 の記事データは返さない。include パラメータを指定すると無視される。初期値はなし(除外なし)。
meta_key
文字列) 特定のカスタムフィールドを持つ投稿のみを取得したいとき、そのキーを指定。たぶん meta_value パラメータとセットで指定。include パラメータを指定すると無視される。初期値はなし。
meta_value
文字列) 特定のカスタムフィールドを持つ投稿のみを取得したいとき、その値を指定。たぶん meta_key パラメータとセットで指定。include パラメータを指定すると無視される。初期値はなし。
post_type
文字列) 指定した投稿タイプの投稿のみを返す。有効値:
post_status
文字列) 指定した投稿ステータスの投稿のみを返す。有効値:
  • 'publish' - 公開(初期値)
  • 'draft' - 草稿
  • 'private' - プライベート
  • 'static' - 2.1 以降では使われていないかも
  • 'object'
  • 'attachment'
  • 'inherit'
  • 'future' - 予約投稿
  • 'pending' - ペンディング(2.3 以降でのみ指定可)
post_parent
整数) 特定の「ページ」の子ページのみを取得したいとき、親ページの ID を指定。include パラメータを指定すると無視される。初期値は 0(指定なし)。

最新英語版: WordPress Codex » Template Tags/get_posts

外部リンク


記事

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

  • クラス: 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()


テンプレートタグへのクエリ文字列型パラメータの渡し方関数リファレンステンプレートタグ目次もご覧ください。