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

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

「関数リファレンス/get post」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:Function Reference/get post 03:51, 21 April 2010 Martythornley)
 
(en:Function Reference/get_post 11:54, 7 April 2014 MichaelApproved 版を反映。)
 
(2人の利用者による、間の2版が非表示)
1行目: 1行目:
==Description==
+
<div id="Description">
 +
== 説明 ==
 +
</div>
  
Takes a post ID and returns the database record for that post. You can specify, by means of the <tt>$output</tt> parameter, how you would like the results returned.
+
投稿 ID で指定した投稿のレコードをデータベースから取得します。<tt>$output</tt> パラメータで戻り値の型を指定できます。<tt>$filter</tt> パラメータには、取得したレコード内の各フィールドに対する無害化のコンテキストを指定します。無害化については [[関数リファレンス/sanitize post field|sanitize_post_field()]] も見てください。
  
==Usage==
+
投稿オブジェクトを指定した場合は、そのオブジェクトの各フィールドを無害化してから指定された型で返します。
  
%%%<?php get_post( $id, $output ); ?> %%%
+
<div id="Usage">
 +
== 使い方 ==
 +
</div>
  
==Parameters==
+
<?php get_post( $id, $output, $filter ); ?>
  
{{Parameter|$post|integer|The ID of the post you'd like to fetch. '''You must pass a variable containing an integer''' (e.g. <tt>$id</tt>). A literal integer (e.g. <tt>7</tt>) will cause a fatal error (''Only variables can be passed for reference'' or ''Cannot pass parameter 1 by reference'').}}
+
<div id="Parameters">
{{Parameter|$output|string|How you'd like the result. <ul><li>''OBJECT'' - returns an object</li><li>''ARRAY_A'' - Returns an associative array of field names to values</li><li>''ARRAY_N'' - returns a numeric array of field values</li></ul>|optional|OBJECT}}
+
== パラメータ ==
 +
</div>
  
==Example==
+
{{Parameter|$id|整数&#124;オブジェクト|取得したい投稿の ID、または無害化したい投稿オブジェクト。デフォルトでは''現在の投稿''が取得されます。|オプション|null (現在の投稿)}}
  
To get the title for a post with ID 7:
+
{{Parameter|$output|定数|戻り値の型|オプション|<code>'OBJECT'</code>}}
 +
: 有効な値は次のとおりです:
 +
:* <code>'OBJECT'</code> - [[クラスリファレンス/WP_Post|投稿オブジェクト]]を返します
 +
:* <code>'ARRAY_A'</code> - 連想配列(フィールド名がキーになります)
 +
:* <code>'ARRAY_N'</code> - インデックス配列
  
%%%<?php
+
{{Parameter|$filter|文字列|無害化のコンテキスト|オプション|<code>'raw'</code>}}
$my_id = 7;
+
: 有効な値は次のとおりです。[[関数リファレンス/sanitize post field|sanitize_post_field()]] も見てください:
$post_id_7 = get_post($my_id);
+
:* <code>'raw'</code> - 数値フィールドの値のみ無害化
$title = $post_id_7->post_title;
+
:* <code>'edit'</code> - 各種フィルターフックで無害化
?> %%%
+
:* <code>'db'</code> - 各種フィルターフックで無害化
 +
:* <code>'display'</code> - 各種フィルターフックで無害化
 +
:* <code>'attreibute'</code> - 各種フィルターフックの後、<tt>esc_attr()</tt> で無害化
 +
:* <code>'js'</code> - 各種フィルターフックの後、<tt>esc_js()</tt> で無害化
  
Alternatively, specify the <tt>$output</tt> parameter:
+
<div id="Return_Values">
 +
== 戻り値 ==
 +
</div>
  
%%%<?php
+
[[クラスリファレンス/WP_Post|WP_Post]] オブジェクトを返します。指定された投稿が存在しないか、エラーが発生した場合は、<tt><b>null</b></tt> を返します。
$my_id = 7;
+
$post_id_7 = get_post($my_id, ARRAY_A);
+
$title = $post_id_7['post_title'];
+
?> %%%
+
  
%%%<?php
+
'''参考:'''戻り値に含まれるフィールドの値は次のとおりです。
## Correct: pass a dummy variable as post_id
+
[[データベース概要#Table:_wp_posts|データベースの wp_posts テーブルの説明]]も見てください。
$the_post = & get_post( $dummy_id = 7 );
+
+
## Incorrect: literal integer as post_id
+
$the_post = & get_post( 7 );
+
// Fatal error: 'Only variables can be passed for reference' or 'Cannot pass parameter 1 by reference'
+
?>%%%
+
  
==Return==
+
; <tt>ID</tt> : (''整数'') 投稿 ID
 +
; <tt>post_author</tt> : (''整数'') 作成者 ID
 +
; <tt>post_date</tt> : (''文字列'') 投稿日時 (<tt>YYYY-MM-DD HH:MM:SS</tt>)
 +
; <tt>post_date_gmt</tt> : (''文字列'') GMT での投稿日時 (<tt>YYYY-MM-DD HH:MM:SS</tt>)
 +
; <tt>post_content</tt> : (''文字列'') 本文
 +
; <tt>post_title</tt> : (''文字列'') タイトル
 +
; <tt>post_category</tt> : (''整数'') カテゴリー ID。[[Version 2.1|バージョン 2.1]] 以降、常に 0 です。投稿のカテゴリーを取得するには [[テンプレートタグ/get_the_category|get_the_category()]] を使用してください。
 +
; <tt>post_excerpt</tt> : (''文字列'') 抜粋
 +
; <tt>post_status</tt> : (''文字列'') 公開ステータス (<tt>publish|pending|draft|private|static|object|attachment|inherit|future</tt>)
 +
; <tt>comment_status</tt> : (''文字列'') コメントステータス (<tt>open|closed|registered_only</tt>)
 +
; <tt>ping_status</tt> : (''文字列'') ピンバック/トラックバックステータス (<tt>open|closed</tt>)
 +
; <tt>post_password</tt> : (''文字列'') 閲覧パスワード
 +
; <tt>post_name</tt> : (''文字列'') スラッグ
 +
; <tt>to_ping</tt> : (''文字列'') ピン通知 URL
 +
; <tt>pinged</tt> : (''文字列'') ピン通知済み URL
 +
; <tt>post_modified</tt> : (''文字列'') 更新日時 (<tt>YYYY-MM-DD HH:MM:SS</tt>)
 +
; <tt>post_modified_gmt</tt> : (''文字列'') GMT での更新日時 (<tt>YYYY-MM-DD HH:MM:SS</tt>)
 +
; <tt>post_content_filtered</tt> : (''文字列'')
 +
; <tt>post_parent</tt> : (''整数'') 親 ID (固定ページや添付ファイルなどで使用)
 +
; <tt>guid</tt> : (''文字列'') 投稿へのリンクの書式になっている識別子。
 +
; <tt>menu_order</tt> : (''整数'') [[Pages|固定ページ]] の表示順序。
 +
; <tt>post_type</tt> : (''文字列'') 投稿タイプ (<tt>post|page|attachment</tt>)
 +
; <tt>post_mime_type</tt> : (''文字列'') 添付ファイルのとき MIME タイプ(image/png など)
 +
; <tt>comment_count</tt> : (''整数'') コメント数
  
The fields returned are:
+
<div id="Examples">
 +
== 用例 ==
 +
</div>
  
; <tt>ID</tt> : (''integer'') The post ID
+
ID が 7 の投稿のタイトルを取得する:
; <tt>post_author</tt> : (''integer'') The post author's ID
+
; <tt>post_date</tt> : (''string'') The datetime of the post (<tt>YYYY-MM-DD HH:MM:SS</tt>)
+
; <tt>post_date_gmt</tt> : (''string'') The GMT datetime of the post (<tt>YYYY-MM-DD HH:MM:SS</tt>)
+
; <tt>post_content</tt> : (''string'') The post's contents
+
; <tt>post_title</tt> : (''string'') The post's title
+
; <tt>post_category</tt> : (''integer'') The post category's ID. Note that this will always be 0 (zero) from wordpress 2.1 onwards. To determine a post's category or categories, use [[Function_Reference/get_the_category|get_the_category()]].
+
; <tt>post_excerpt</tt> : (''string'') The post excerpt
+
; <tt>post_status</tt> : (''string'') The post status (<tt>publish|pending|draft|private|static|object|attachment|inherit|future</tt>)
+
; <tt>comment_status</tt> : (''string'') The comment status (<tt>open|closed|registered_only</tt>)
+
; <tt>ping_status</tt> : (''string'') The pingback/trackback status (<tt>open|closed</tt>)
+
; <tt>post_password</tt> : (''string'') The post password
+
; <tt>post_name</tt> : (''string'') The post's URL slug
+
; <tt>to_ping</tt> : (''string'') URLs to be pinged
+
; <tt>pinged</tt> : (''string'') URLs already pinged
+
; <tt>post_modified</tt> : (''string'') The last modified datetime of the post (<tt>YYYY-MM-DD HH:MM:SS</tt>)
+
; <tt>post_modified_gmt</tt> : (''string'') The last modified GMT datetime of the post (<tt>YYYY-MM-DD HH:MM:SS</tt>)
+
; <tt>post_content_filtered</tt> : (''string'')
+
; <tt>post_parent</tt> : (''integer'') The parent post's ID (for attachments, etc)
+
; <tt>guid</tt> : (''string'') A link to the post. Note: One cannot rely upon the GUID to be the permalink (as it previously was in pre-2.5), Nor can you expect it to be a valid link to the post. It's mearly a unique identifier, which so happens to be a link to the post at present.
+
; <tt>menu_order</tt> : (''integer'')
+
; <tt>post_type</tt> : (''string'') (<tt>post|page|attachment</tt>)
+
; <tt>post_mime_type</tt> : (''string'') Mime Type (for attachments, etc)
+
; <tt>comment_count</tt> : (''integer'') Number of comments
+
  
== Source File ==
+
<pre><?php
 +
$post_7 = get_post( 7 );
 +
$title = $post_7->post_title;
 +
?></pre>
  
<tt>get_post()</tt> is located in {{Trac|wp-includes/post.php}} and {{Trac|wp-app.php}}.
+
上の例に加えて <tt>$output</tt> パラメータを指定すると:
  
== References ==
+
<pre><?php
 +
$post_7 = get_post( 7, ARRAY_A );
 +
$title = $post_7['post_title'];
 +
?></pre>
  
* [http://wordpress.org/support/topic/54424 get_post method not working] NB: "This topic has been closed to new replies."
+
<div id="Notes">
 +
== 参考 ==
 +
</div>
  
== Related ==
+
バージョン 3.5 より前は、第 1 パラメータの <tt>$post</tt> が変数でなければなりませんでした。例えば <tt>get_post( 7 )</tt> はエラー(''Only variables can be passed for reference'' または ''Cannot pass parameter 1 by reference'')になっていました。
  
 +
<div id="Change_Log">
 +
== 変更履歴 ==
 +
</div>
 +
 +
* [[Version 1.5.1|バージョン 1.5.1]] : 新規導入
 +
* [[Version_3.5|バージョン 3.5.0]] : <tt>$post</tt> パラメータが[http://php.net/manual/ja/functions.arguments.php 値渡し]になりました。以前は[http://php.net/manual/ja/functions.arguments.php#functions.arguments.by-reference 参照渡し]でした。
 +
 +
<div id="Source_File">
 +
== ソースファイル ==
 +
</div>
 +
 +
<tt>get_post()</tt> は {{Trac|wp-includes/post.php}} に含まれています。
 +
 +
<div id="Related">
 +
== 関連資料 ==
 +
</div>
 +
* <tt>[[関数リファレンス/get_post_field|get_post_field()]]</tt> - 投稿 ID とフィールドを指定してデータを取得する。
 +
{{Query Tags}}
 
{{Tag Footer}}
 
{{Tag Footer}}
  
{{Copyedit}}
+
{{原文|Function Reference/get_post|142363}} <!-- 11:54, 7 April 2014 MichaelApproved 版 -->
{{原文|Function Reference/get post|86339}}
+
 
[[Category:Functions]]
+
{{DEFAULTSORT:get_post}}  
[[en:Function Reference/get post]]
+
[[Category:関数]]
 +
 
 +
[[en:Function Reference/get_post]]
 +
[[it:Riferimento_funzioni/get_post]]
 +
[[ru:Справочник_по_функциям/get_post]]
 +
[[tr:Fonksiyon Referans/get_post]]

2014年9月14日 (日) 16:57時点における最新版

投稿 ID で指定した投稿のレコードをデータベースから取得します。$output パラメータで戻り値の型を指定できます。$filter パラメータには、取得したレコード内の各フィールドに対する無害化のコンテキストを指定します。無害化については sanitize_post_field() も見てください。

投稿オブジェクトを指定した場合は、そのオブジェクトの各フィールドを無害化してから指定された型で返します。

使い方

<?php get_post( $id, $output, $filter ); ?>

パラメータ

$id
整数|オブジェクト) (オプション) 取得したい投稿の ID、または無害化したい投稿オブジェクト。デフォルトでは現在の投稿が取得されます。
初期値: null (現在の投稿)
$output
定数) (オプション) 戻り値の型
初期値: 'OBJECT'
有効な値は次のとおりです:
  • 'OBJECT' - 投稿オブジェクトを返します
  • 'ARRAY_A' - 連想配列(フィールド名がキーになります)
  • 'ARRAY_N' - インデックス配列
$filter
文字列) (オプション) 無害化のコンテキスト
初期値: 'raw'
有効な値は次のとおりです。sanitize_post_field() も見てください:
  • 'raw' - 数値フィールドの値のみ無害化
  • 'edit' - 各種フィルターフックで無害化
  • 'db' - 各種フィルターフックで無害化
  • 'display' - 各種フィルターフックで無害化
  • 'attreibute' - 各種フィルターフックの後、esc_attr() で無害化
  • 'js' - 各種フィルターフックの後、esc_js() で無害化

戻り値

WP_Post オブジェクトを返します。指定された投稿が存在しないか、エラーが発生した場合は、null を返します。

参考:戻り値に含まれるフィールドの値は次のとおりです。 データベースの wp_posts テーブルの説明も見てください。

ID 
(整数) 投稿 ID
post_author 
(整数) 作成者 ID
post_date 
(文字列) 投稿日時 (YYYY-MM-DD HH:MM:SS)
post_date_gmt 
(文字列) GMT での投稿日時 (YYYY-MM-DD HH:MM:SS)
post_content 
(文字列) 本文
post_title 
(文字列) タイトル
post_category 
(整数) カテゴリー ID。バージョン 2.1 以降、常に 0 です。投稿のカテゴリーを取得するには get_the_category() を使用してください。
post_excerpt 
(文字列) 抜粋
post_status 
(文字列) 公開ステータス (publish|pending|draft|private|static|object|attachment|inherit|future)
comment_status 
(文字列) コメントステータス (open|closed|registered_only)
ping_status 
(文字列) ピンバック/トラックバックステータス (open|closed)
post_password 
(文字列) 閲覧パスワード
post_name 
(文字列) スラッグ
to_ping 
(文字列) ピン通知 URL
pinged 
(文字列) ピン通知済み URL
post_modified 
(文字列) 更新日時 (YYYY-MM-DD HH:MM:SS)
post_modified_gmt 
(文字列) GMT での更新日時 (YYYY-MM-DD HH:MM:SS)
post_content_filtered 
(文字列)
post_parent 
(整数) 親 ID (固定ページや添付ファイルなどで使用)
guid 
(文字列) 投稿へのリンクの書式になっている識別子。
menu_order 
(整数) 固定ページ の表示順序。
post_type 
(文字列) 投稿タイプ (post|page|attachment)
post_mime_type 
(文字列) 添付ファイルのとき MIME タイプ(image/png など)
comment_count 
(整数) コメント数

用例

ID が 7 の投稿のタイトルを取得する:

<?php
$post_7 = get_post( 7 ); 
$title = $post_7->post_title;
?>

上の例に加えて $output パラメータを指定すると:

<?php
$post_7 = get_post( 7, ARRAY_A );
$title = $post_7['post_title'];
?>

参考

バージョン 3.5 より前は、第 1 パラメータの $post が変数でなければなりませんでした。例えば get_post( 7 ) はエラー(Only variables can be passed for reference または Cannot pass parameter 1 by reference)になっていました。

変更履歴

ソースファイル

get_post()wp-includes/post.php に含まれています。

  • get_post_field() - 投稿 ID とフィールドを指定してデータを取得する。

記事

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

  • クラス: WP_Query - WP_Query クラスの詳細な全容
  • クラス: WP_Comment_Query - コメント関連のクエリのためのクラス
  • クラス: WP_User_Query - ユーザー関連のクエリのためのクラス
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方全容
  • 関数: set_query_var()
  • 関数: 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 - post クエリの後で post オブジェクトを変更する
  • フィルターフック: found_posts - WP_Query オブジェクトの found_posts 値を変更する


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/get_post最新版との差分