get_post

(1.5.1以降)
get_post - 投稿情報を取得する

説明

mixed get_post( mixed & $post [ , string $output = OBJECT [ , string $filter = 'raw' ] ] )
任意の投稿情報を取得する。

パラメータ

  • $post
    投稿情報または投稿IDが格納された変数
  • $output
    出力形式(OBJECT、ARRAY_A、ARRAY_Nの何れか)を指定(省略時はOBJECT)。
  • $filter
    フィルターを指定(省略時は'raw')。

返り値

投稿情報が見つかった場合は$outputで指定した形式(オブジェクトまたは配列)で返す。投稿情報が見つからない場合はnullを返す。

注意

パラメータ$postは省略できない。nullや0などを指定した場合は、グローバル変数の$GLOBAL['post']を調べ、セットされている場合はその内容を、セットされていない場合はnullを返す。

パラメータ$postだが、どこがのバージョンで投稿IDを変数に入れないとエラーになっていたが、最新版は投稿IDを指定しても問題なくなっている。

パラメータ$outputにARRAY_AまたはARRAY_Nを指定した場合は、固定ページとそれ以外の投稿タイプとでは得られる配列の要素が異なる。具体的には固定ページの場合は'page_template'(ARRAY_Nの場合は25)にテンプレートファイル名が格納されるが、固定ページ以外の場合はこの要素がない。ARRAY_Nを指定してキーが25以降の値を参照するときは注意が必要である。

使用例

  • 投稿IDが10の投稿情報を取得する。
    <?php $post = get_post( 10 $id = 10 ); ?>
  • 投稿IDが10の投稿情報を連想配列で取得する。
    <?php $post = get_post( 10, ARRAY_A ); ?>

フィルター

実行するフィルターはありません。

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/post.php

関連

お勧めコンテンツ

投稿内容に応じてwpautopを制御する(2013年8月13日 登録)

投稿内容を表示するthe_content関数では、wpautop関数がフィルターの1つとして呼び出され、改行をbrタグに変換したり、pタグで調整したりする。この機能自体は便利なのだが、きちんとデザインされたHTMLソースを流し込んだ場合はこの機能は好ましくない。そんなわけで、記事内容に応じてwpautop関数を制御できないか考えてみた。

4.4では投稿ページも専用テンプレートが適用できる(2015年11月7日 登録)

従来、特定の固定ページには専用テンプレートを適用できるのですが、投稿ページに適用させるためにはアクションやフィルターを利用する必要がありました。4.4では特定の投稿ページに標準で専用テンプレートを適用できるようになりそうです。

get_postsとquery_postsを使い分け(2011年1月21日 登録)

get_postsquery_postsは、どちらも複数の投稿情報を取得することができる便利な関数である。パラメータとして指定できる内容も共通しているものが多く、query_postsがより詳細なパラメータを指定でき、高機能になっている。

ショートコードを使ってテーマ内の画像URLを簡単に指定する(2011年5月2日 登録)

投稿記事の中で画像パーツを使いたいときがある。画像パーツの配置場所は、/imgディレクトリのようなテーマ外の場合と、/wp-content/themes/mytheme/imagesディレクトリのようなテーマ内の場合があり、今回は後者のケース。ショートコードを使って投稿記事の画像ファイルのURLを記述する方法を紹介したい。

子カテゴリのアーカイブページを親カテゴリ用のテンプレートファイルで表示しよう(2011年12月8日 登録)

少し前に投稿した「適切なテンプレートファイルを用意してテンプレート内の振り分け処理を無くす」で説明した通り、特定のカテゴリ専用のテンプレートとしてcategory-○○.phpを用意することで、category.phpやarchive.php内で振り分けを行う必要がなくなる。ただ、すべてのカテゴリ分を用意するのは効率的ではないし、特に子カテゴリについては親カテゴリと共通内容になるケースが多いのではないだろうか。ここでは、子カテゴリの個別テンプレートファイルを作らず、親カテゴリのテンプレートを利用する方法を紹介する。

最終更新日時 : 2016-05-23 13:15