- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
関数リファレンス/get post meta
目次
概要
この関数は特定の投稿の特定のキーからカスタムフィールドの値を取得します。全てのカスタムフィールド値を返すためには、get_post_custom()を参照してください。update_post_meta()やdelete_post_meta()、add_post_meta()も参照してください。
使用法
<?php $meta_values = get_post_meta($post_id, $key, $single); ?>
もしデータベースの照合順序が大文字小文字を区別する (suffix_ciを持つ) 場合、update_post_meta、delete_post_meta、get_postは大文字または小文字のメタレコードをupdate/delete/queryします。しかしget_post_metaは大文字小文字を区別するようです。これはWordPressのキャッシュに依るものです。詳しくは https://core.trac.wordpress.org/ticket/18210 を参照してください。大文字小文字を混ぜぬよう、気をつけてください。
パラメータ
- $post_id
- (integer) (必須) データを取得したい投稿のID。The Loopの投稿のIDを取得するにはget_the_ID()を、サブループの投稿オブジェクトIDプロパティ (例: $my_post_object->ID) を使用してください。グローバルの$postオブジェクトIDプロパティ(例: $post->ID)を使うこともできますが、常に欲しかった結果が得られるとは限りません。
- 初期値: なし
- $key
- (string) (必須) 取得したい値のキー名の文字列。
- 初期値: なし
- $single
- (boolean) (オプション) trueにセットした場合、文字列として単一の結果を返します。falseまたは値をセットしなかった場合、関数はカスタムフィールドの配列を返します。これはシリアル化された文字列としてはあまり直感的ではありません。たとえば、このメソッドでシリアル化された配列を取得した場合、$singleをtrueに設定すると非シリアル化された配列が戻ってきます。falseまたは値をセットしなかった場合、一つの要素からなる配列が返ってきて、インデックス0の値はシリアル化された文字列となります。
- 初期値: false
戻り値
- $idだけが設定されている場合、関係する配列の全てのメタ値を返します。
- $singleがfalseに設定されているか、何も設定しなかった場合、関数は指定したキーを持つ全ての値からなる配列を返します。
- $singleがtrueに設定された場合、関数は指定されたキーを持つ最初の値を返します(配列ではありません)。
もしも関数が返す値がなかった場合、空の配列を返します。$singleがtrueに設定されていた場合、空の文字列を返します。
使用例
デフォルトでの使用
全てのキー値を取得する:
<?php $meta = get_post_meta( get_the_ID() ); ?>
一つのキー値だけを取得する:
<php $key_1_value = get_post_meta(76, 'key_1', true); ?>
ループ内の与えられたキーの最初の値だけを取得する
<?php $key_1_value = get_post_meta( get_the_ID(), 'key_1', true ); // check if the custom field has a value if( ! empty( $key_1_value ) ) { echo $key_1_value; } ?>
より詳しい例は、post_meta関数例を参照してください。
カスタムフィールドのサムネイルURLを取得する
WordPressループの中では、このコードを用いてカスタムフィールドを取得します。この例では、サムネイルイメージのURLが"thumb"という名でカスタムフィールドにあります。
<?php if ( get_post_meta( get_the_ID(), 'thumb', true ) ) : ?> <a href="<?php the_permalink() ?>" rel="bookmark"> <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), 'thumb', true ) ?>" alt="<?php the_title(); ?>" /> </a> <?php endif; ?>
ソースコード
get_post_meta()はwp-includes/post.php
にあります。
関係する関数
カスタムフィールド: the_meta(), get_post_meta(), add_post_meta(), update_post_meta(), delete_post_meta(), get_post_custom(), get_post_custom_values(), get_post_custom_keys() (post_meta 関数の例 /en も参照)
最新英語版: WordPress Codex » Function_Reference/get_post_meta (最新版との差分)