get_post_meta()
参照:WordPress Codex-get_post_meta()
構文
get_post_meta(①$post_id, ②$key[オプション], ③$single[オプション])
get_post_meta()の詳細
動 作
カスタムフィールドの値を取得する。
返り値
$idだけが設定されている場合:
その投稿に関するるすべてのカスタムフィールドの値を返す。
返す値がない場合:
空の配列を返す。
引 数
①$post_id
(整数)必須
カスタムフィールドを取得したい投稿のID
②$key[オプション]
取得したい値のキー名の文字列
初期値:”
③$single[オプション]
true:文字列として単一の結果
false:初期値
get_post_meta()のコード
参照:tags/5.3/src/wp-includes/post.php
<?php //wp-includes/post.phpより /** * Retrieves a post meta field for the given post ID. * * @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. If true, returns only the first value for the specified meta key. * This parameter has no effect if $key is not specified. Default false. * @return mixed Will be an array if $single is false. Will be value of the meta * field if $single is true. */ function get_post_meta( $post_id, $key = '', $single = false ) { return get_metadata( 'post', $post_id, $key, $single ); } //wp-includes/meta.phpより function get_metadata( $meta_type, $object_id, $meta_key = '', $single = false ) { if ( ! $meta_type || ! is_numeric( $object_id ) ) { return false; } $object_id = absint( $object_id ); if ( ! $object_id ) { return false; } /** * Filters whether to retrieve metadata of a specific type. * * The dynamic portion of the hook, `$meta_type`, refers to the meta * object type (comment, post, term, or user). Returning a non-null value * will effectively short-circuit the function. * * @since 3.1.0 * * @param null|array|string $value The value get_metadata() should return - a single metadata value, * or an array of values. * @param int $object_id ID of the object metadata is for. * @param string $meta_key Metadata key. * @param bool $single Whether to return only the first value of the specified $meta_key. */ $check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single ); if ( null !== $check ) { if ( $single && is_array( $check ) ) { return $check[0]; } else { return $check; } } $meta_cache = wp_cache_get( $object_id, $meta_type . '_meta' ); if ( ! $meta_cache ) { $meta_cache = update_meta_cache( $meta_type, array( $object_id ) ); if ( isset( $meta_cache[ $object_id ] ) ) { $meta_cache = $meta_cache[ $object_id ]; } else { $meta_cache = null; } } if ( ! $meta_key ) { return $meta_cache; } if ( isset( $meta_cache[ $meta_key ] ) ) { if ( $single ) { return maybe_unserialize( $meta_cache[ $meta_key ][0] ); } else { return array_map( 'maybe_unserialize', $meta_cache[ $meta_key ] ); } } if ( $single ) { return ''; } else { return array(); } } ?>