get_posts()

新着何件など、いろいろな用途に使います。マルチループ(複数ループ)を作成するためのシンプルなタグです。また、グローバル変数$wp_queryを変更しません。 表示件数のデフォルトが5件なので注意。気づかずに10分くらい悩みました。 全件表示にしたいときは引数で「numberposts=-1」とすればOKです。

位置

ループ外

引数

  • $numberposts…取得する投稿の数。デフォルトは5件。全件出すには「-1」にする。
  • $offset…先頭から何件の投稿を除外するか。
  • $category…指定したカテゴリID の投稿のみを返す。カテゴリID をマイナスにすると除外。複数のカテゴリを指定する場合は、カンマで区切る(配列不可)。
  • $category_name…カテゴリースラッグで指定
  • $tag…指定したタグスラッグの投稿のみを返す。
  • $orderby
  • 'author' – 著者ID。
  • 'category' – カテゴリID。
  • 'content' – コンテンツ。
  • 'date' – 作成日。
  • 'ID' – 投稿ID。
  • 'menu_order' – メニュー。ページとアタッチメントでのみ有効。
  • 'mime_type' – MIME type。アタッチメントでのみ有効。
  • 'modified' – 最終更新日
  • 'name' – stub。
  • 'parent' – 親ID。
  • 'password' – パスワード。
  • 'rand' – ランダム。
  • 'status' – ステータス。
  • 'title' – タイトル。
  • 'type' – 投稿タイプ。
  • $order
    • 'DESC' – 降順(高から低)。
    • 'ASC' – 昇順(低から高)。
  • $include
  • $exclude
  • $meta_key and $meta_value
  • $post_type
  • $post_status
  • $post_parent…このIDの投稿の子のみを表示する。
  • $nopaging…ページングを有効/無効にする。ページングを無効にすると $numberpostsオプションが無視される。

タグ使用例

カテゴリースラッグexampleの投稿を全件出力(2012.9.3一部修正)

カテゴリーからカテゴリー名を出力

※query_posts()でいうところのwp_reset_query()にあたるものが、get_posts()にもあります。 です。 しかし、個人的には使いどころがいまいち解っていません。。 解っていないけれどいつか使うかもしれないのでメモ。

の使いどころがわかりました。そして、その前に上記のコード見本に肝心な記述が抜けている事もわかりました。。。
既に修正したのですが、「foreach($myposts as $post)  」のあとに必要な「setup_postdata($post)」が今まで抜けておりました…すみません。
これがないと、get_posts()では、the_content() のコンテンツや ID などが使えないのですね。
そして、最後はwp_reset_postdata()でリセットします。
※ご指摘くださった方へ…貴重なご指摘ありがとうございました。間違いに全く気づいていなかったので、とても助かりました!         2012年9月3日 記