- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
「関数リファレンス/get post meta」の版間の差分
Takahashi Fumiki (トーク | 投稿記録) (2009年7月20日 (月) 22:44 Mslade http://codex.wordpress.org/Function_Reference/get_post_meta) |
(最新版に内容を合わせました。) |
||
1行目: | 1行目: | ||
==概要== | ==概要== | ||
− | + | この関数は特定の投稿の特定のキーからカスタムフィールドの値を取得します。全てのカスタムフィールド値を返すためには、[[関数リファレンス/get_post_custom|get_post_custom()]]を参照してください。[[関数リファレンス/update post meta|update_post_meta()]]や[[関数リファレンス/delete post meta|delete_post_meta()]]、[[関数リファレンス/add post meta|add_post_meta()]]も参照してください。 | |
==使用法== | ==使用法== | ||
8行目: | 8行目: | ||
<?php $meta_values = get_post_meta($post_id, $key, $single); ?> | <?php $meta_values = get_post_meta($post_id, $key, $single); ?> | ||
</pre> | </pre> | ||
+ | |||
+ | もしデータベースの照合順序が大文字小文字を区別する (<tt>suffix_ci</tt>を持つ) 場合、<tt>update_post_meta、delete_post_meta、get_post</tt>は大文字または小文字のメタレコードをupdate/delete/queryします。しかし<tt>get_post_meta</tt>は大文字小文字を区別するようです。これはWordPressのキャッシュに依るものです。詳しくは https://core.trac.wordpress.org/ticket/18210 を参照してください。大文字小文字を混ぜぬよう、気をつけてください。 | ||
==パラメータ== | ==パラメータ== | ||
− | {{Parameter|$post_id|integer| | + | {{Parameter|$post_id|integer|データを取得したい投稿のID。<tt>The Loop</tt>の投稿のIDを取得するには<tt>get_the_ID()</tt>を、サブループの投稿オブジェクトIDプロパティ (例: <tt>$my_post_object->ID</tt>) を使用してください。グローバルの<tt>$post</tt>オブジェクトIDプロパティ(例: <tt>$post->ID</tt>)を使うこともできますが、常に欲しかった結果が得られるとは限りません。}} |
{{Parameter|$key|string|取得したい値のキー名の文字列。}} | {{Parameter|$key|string|取得したい値のキー名の文字列。}} | ||
− | {{Parameter|$single|boolean|trueにセットした場合、'''文字列''' | + | {{Parameter|$single|boolean|trueにセットした場合、'''文字列'''として単一の結果を返します。falseまたは値をセットしなかった場合、関数はカスタムフィールドの'''配列'''を返します。これはシリアル化された文字列としてはあまり直感的ではありません。たとえば、このメソッドでシリアル化された配列を取得した場合、$singleをtrueに設定すると非シリアル化された配列が戻ってきます。falseまたは値をセットしなかった場合、一つの要素からなる配列が返ってきて、インデックス0の値はシリアル化された文字列となります。|オプション|false}} |
==戻り値== | ==戻り値== | ||
− | * <tt>$single</tt>が<tt>false</tt> | + | * <tt>$id</tt>だけが設定されている場合、関係する配列の全てのメタ値を返します。 |
+ | * <tt>$single</tt>が<tt>false</tt>に設定されているか、何も設定しなかった場合、関数は指定したキーを持つ全ての値からなる配列を返します。 | ||
* <tt>$single</tt>が<tt>true</tt>に設定された場合、関数は指定されたキーを持つ最初の値を返します(配列ではありません)。 | * <tt>$single</tt>が<tt>true</tt>に設定された場合、関数は指定されたキーを持つ最初の値を返します(配列ではありません)。 | ||
− | + | もしも関数が返す値がなかった場合、'''空の配列'''を返します。<tt>$single</tt>が<tt>true</tt>に設定されていた場合、'''空の文字列'''を返します。 | |
==使用例== | ==使用例== | ||
===デフォルトでの使用=== | ===デフォルトでの使用=== | ||
+ | 全てのキー値を取得する: | ||
+ | <pre> | ||
+ | <?php $meta = get_post_meta( get_the_ID() ); ?> | ||
+ | </pre> | ||
+ | 一つのキー値だけを取得する: | ||
<pre> | <pre> | ||
− | < | + | <php $key_1_value = get_post_meta(76, 'key_1', true); ?> |
</pre> | </pre> | ||
− | === | + | ===ループ内の与えられたキーの最初の値だけを取得する=== |
+ | <pre> | ||
+ | <?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; | ||
+ | } | ||
+ | ?> | ||
+ | </pre> | ||
− | + | より詳しい例は、[[関数リファレンス/post meta Function Examples|post_meta関数例]]を参照してください。 | |
− | + | ||
− | + | ===カスタムフィールドのサムネイルURLを取得する=== | |
+ | [[The_Loop|WordPressループ]]の中では、このコードを用いてカスタムフィールドを取得します。この例では、サムネイルイメージのURLが"thumb"という名でカスタムフィールドにあります。 | ||
+ | <pre> | ||
+ | <?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; ?> | ||
</pre> | </pre> | ||
− | + | ==ソースコード== | |
+ | <tt>get_post_meta()</tt>は{{BrowseSource|wp-includes/post.php}} にあります。 | ||
+ | |||
+ | ==関係する関数== | ||
+ | |||
+ | {{Post Meta Tags}} | ||
+ | |||
+ | {{原文|Function_Reference/get_post_meta|132204}}<!-- 12:42, 17 June 2013 Skaramicke 版 --> | ||
[[Category:関数]] | [[Category:関数]] | ||
[[en:Function_Reference/get_post_meta]] | [[en:Function_Reference/get_post_meta]] |
2013年6月18日 (火) 22:24時点における版
目次
概要
この関数は特定の投稿の特定のキーからカスタムフィールドの値を取得します。全てのカスタムフィールド値を返すためには、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 (最新版との差分)