WORDPRESS--投稿のカスタムフィールドを配列として取得


カスタムフィールドを同一名で複数登録し、取得しようとした際のメモ

以下は$postを取得している前提

カスタムフィールドの設定

「投稿」→「投稿一覧」→投稿の編集画面で右上にある「表示オプションをクリック」→カスタムフィールドにチェック
「カスタムフィールド」新規追加→名前(phpからアクセスするときのプロパティ名およびDB上のmeta_keyの値になる)と値(DB上のmeta_value)を入力して追加

カスタムフィールドに配列として登録

カスタムフィールドを同一名で複数追加

カスタムフィールドの値(単一)を取得

$post->カスタムフィールドの名前でアクセスできる。1
オーバーロードを利用しているようです。

カスタムフィールドの値(配列)を取得

上記のやり方では配列として取得できなかった。
ので、調べたところget_post_meta()を使うことで解決できた。

コード例

          <?php $skills = get_post_meta($post->ID, 'skills', false); ?>
          <?php if($skills) : foreach($skills as $skill): ?>
            <p><?php print_r($skill); ?></p>
                  <?php endforeach; ?>
          <?php endif; ?>

$postはpostオブジェクト、skillsはカスタムフィールド名、falseはシングルでない=配列として値を取得