カスタムフィールドを同一名で複数登録し、取得しようとした際のメモ
以下は$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はシングルでない=配列として値を取得
-
オーバーロードを利用しているようです。 ↩