カスタムフィールドの値を取得します。
get_post_meta($post_id,$key,$single)| 引数 | 必須/任意 | 引数に指定するもの |
|---|---|---|
| 第1引数 $post_id | 必須 | 記事のID (整数) |
| 第2引数 $key | 任意 | カスタムフィールドのキー(文字列)初期値: ''(空の文字列)※初期値ではすべてのキーを返します。 |
| 第3引数 $single | 任意 | 1つの値を文字列で返す場合はtrue、1つ以上の値を配列で返す場合はfalse。第2引数に指定がなければ無効になります。 初期値: false |
戻り値(返す値):カスタムフィールドの値。第2引数がfalseの場合、値を格納した配列を返します。
priceに複数の値が紐づいていても1つの値のみを返します。
<?php echo get_post_meta(get_the_ID(), 'price', true); ?>1つのキーに複数の値が紐づいている場合は第3引数をfalseにすることで、すべての値を配列で取得可能です。下記の例ではpriceに紐づいている2つの値を配列から取り出しています。
<?php $prices = get_post_meta(get_the_ID(), 'price', false); ?>
<?php
foreach ($prices as $price) {
echo '<p>価格:' . $price . '円</p>';
}
?>【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。
【引数について】
下記のコードではカスタムフィールドpriceの値を取得してHTMLに埋め込んでいます。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$post_id = get_the_ID();
$price = esc_html(get_post_meta($post_id, 'price', true));
?>
<div><?php the_title(); ?></div>
<p>価格:<?php echo $price; ?>円</p>
<?php endwhile; ?>
<?php endif; ?>※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。