! 各ページ右上の画像広告経由でコンピュータウィルスがダウンロードされた可能性があります。ウィルスチェックをお願いします。詳しくは http://bono.s201.xrea.com/2008/06/693-virus_by_xrea_ad/ をご覧ください。ご迷惑をおかけしてしまい大変申し訳ありません。
テンプレートタグ/get posts
出典: ps*wiki
テンプレートタグ 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- 記事(初期値) -
page- 「ページ」 -
attachment
-
- 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
外部リンク
- power source* » WP: テンプレートタグ get_posts で新着記事リスト等を表示 (2007-04-07) -- 各種使用例
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
