WordPressのカスタムフィールドの取得方法をまとめようとしていたら・・・




この記事は最終更新日から2年以上経過しています。

Advanced Custom Fieldsのようなカスタムフィールドを設定するプラグインを使っているとプラグインが提供している関数でカスタムフィールドを取得するのでWordPressの関数の正しい使い方を忘れてしまうので、簡単な内容になりますがこちらにまとめておきます。

まず利用する関数はこちら。

関数リファレンス/get post meta
https://wpdocs.osdn.jp/関数リファレンス/get_post_meta

パラメータは投稿ID、カスタムフィールドのキー、そして結果を文字列として取得するか、配列として取得するかを指定するフラグの3種類となります。

例えば

のようにカスタムフィールドを登録した場合、

$data = get_post_meta(get_the_ID(), 'cf_test01', false);
print_r($data);

のようにしてテンプレート側では取得できます。
と思ったのですが、なぜか配列要素が複数個表示されました。
ん?と思ったのですがどうやら下書きで保存した時の情報まで取得している模様。
確認していたのはWordPress5.0.2だったので、メージャーバージョンアップ前の4.9.9で確認したところこの現象は発生せず。
WordPress5系になってから扱い方が変わったのかまだ原因が特定できていません。
何回も下書き保存する場合、カスタムフィールドの値を変更すると過去の値も有効になってしまっているような気もするけどなんだろう。。
原因がわかったら追記します。