get_post_meta() - 指定したIDの投稿のメタデータを取得する
公開日:
get_post_meta()
は、指定したIDの投稿に設定されている、カスタムフィールドなどのメタデータを取得する関数です。
構文
パラメータ
$post_id
投稿のIDを数値で指定する。
$key
初期値: ''
取得するカスタムフィールドのキー名。指定しない場合、全てのカスタムフィールドを取得する。
$single
初期値: false
通常、各カスタムフィールドの値は配列形式になっているが、第3引数でtrue
を指定すると、文字列で返す。ケースによっては、取得した値をそのまま利用できる利点などがある。
返り値
mixed
キー名を指定した場合、そのキー名のメタデータを取得する。
第2引数でキー名を指定しなかった場合、投稿に紐付けられている全てのメタデータを含んだ配列を取得する。
第3引数でtrue
を指定した場合、値は配列ではなく文字列で返る。
関数
この関数内で利用している、別のWordPress関数です。
- get_metadata() - 指定したオブジェクトのコンテンツに紐付いたメタデータを取得する。
サンプルコード
全てのメタデータを取得
指定した記事(リンク)に紐付けられている全てのメタデータを取得します。
php
<?php
// 実行
$result = get_post_meta( 11 ) ;
// 結果
print_r( $result ) ;
結果 (出力内容) - PHP7.0.13
Array
(
[_edit_last] => Array
(
[0] => 1
)
[_edit_lock] => Array
(
[0] => 1481696435:1
)
[enclosure] => Array
(
[0] => https://wp.syncer.jp/wp-content/uploads/2016/12/cute-dog.mp4
244970
video/mp4
)
)
特定のメタデータを取得
指定した記事(リンク)に紐付けられている中から、キー名がenclosure
のメタデータだけを取得します。
php
<?php
// 実行
$result = get_post_meta( 11, "enclosure" ) ;
// 結果
print_r( $result ) ;
結果 (出力内容) - PHP7.0.13
Array
(
[0] => https://wp.syncer.jp/wp-content/uploads/2016/12/cute-dog.mp4
244970
video/mp4
)
文字列で取得
先ほどと同じメタデータですが、第3引数にtrue
を指定することで、配列ではなく文字列で値を取得します。
php
<?php
// 実行
$result = get_post_meta( 11, "enclosure", true ) ;
// 結果
print_r( $result ) ;
結果 (出力内容) - PHP7.0.13
https://wp.syncer.jp/wp-content/uploads/2016/12/cute-dog.mp4
244970
video/mp4
ソースコード
wp-includes/post.php
/**
* Retrieve post meta field for a post.
*
* @since 1.5.0
*
* @param int $post_id Post ID.
* @param string $key Optional. The meta key to retrieve. By default, returns
* data for all keys. Default empty.
* @param bool $single Optional. Whether to return a single value. Default false.
* @return mixed Will be an array if $single is false. Will be value of meta data
* field if $single is true.
*/
function get_post_meta( $post_id, $key = '', $single = false ) {
return get_metadata('post', $post_id, $key, $single);
}
参考リンク
- WordPress 関数リファレンス - 公式マニュアル。