この記事は最後に更新してから1年以上経過しています。
説明
カスタムフィールドは、投稿記事の拡張情報としてよく利用されている。投稿ページで登録した情報をアーカイブや投稿ページで表示しているが、投稿ページを表示する際にカスタムフィールドの値を更新して、サイドバーのようなページ内要素に利用したりしている。関連関数一覧
まずはカスタムフィールドに関連する関数を一通り列挙してみた。こうして見ると、使ったことがない関数もちらほらある。
関数名 | 機能 | 概要 | ソースファイル | since |
---|---|---|---|---|
post_custom | 取得 | キーを指定してカスタムフィールドの値を取得 | post-template.php | 1.5.0 |
get_post_custom | 取得 | カスタムフィールドの値をすべて取得 | post.php | 1.2.0 |
get_post_custom_keys | 取得 | カスタムフィールドのキーをすべて取得 | post.php | 1.2.0 |
get_post_custom_values | 取得 | カスタムフィールドの値を取得 | post.php | 1.2.0 |
get_post_meta | 取得 | カスタムフィールドの値を取得 | post.php | 1.5.0 |
get_metadata | 取得 | カスタムフィールドの値を取得 | meta.php | 2.9.0 |
add_post_meta | 追加 | カスタムフィールドの値を追加 | post.php | 1.5.0 |
add_metadata | 追加 | カスタムフィールドの値を追加 | meta.php | 2.9.0 |
update_post_meta | 更新 | カスタムフィールドの値を更新 | post.php | 1.5.0 |
update_metadata | 更新 | カスタムフィールドの値を更新 | meta.php | 2.9.0 |
update_metadata_by_mid | 更新 | カスタムフィールドの値を更新 | meta.php | 3.3.0 |
delete_post_meta | 削除 | カスタムフィールドの値を削除 | post.php | 1.5.0 |
delete_post_meta_by_key | 削除 | カスタムフィールドの値を削除 | post.php | 2.3.0 |
delete_metadata | 削除 | カスタムフィールドの値を削除 | meta.php | 2.9.0 |
delete_metadata_by_mid | 削除 | カスタムフィールドの値を削除 | meta.php | 3.3.0 |
the_meta | 表示 | カスタムフィールドの値を一覧表示 | post-template.php | 1.2.0 |
is_protected_meta | 調査 | カスタムフィールドのキーが予約済みか調べる | meta.php | 3.1.3 |
※ソースファイルはwp-includesディレクトリにある。
カスタムフィールドの値を取得する
カスタムフィールドの値を取得する関数は、post_custom および get_post_custom_values > get_post_custom > get_post_meta > get_metadata がある。post_custom は投稿IDを指定できず、必ず現在の投稿情報のカスタムフィールドの値を取得するのに対して、そのほかの関数は投稿IDを指定できる(get_post_custom_values および get_post_custom において投稿IDを省略した場合は現在の投稿情報)。
カスタムフィールドは、1つの投稿情報に対して同じキーで複数個設定することができる。例えば、'food'キーで'牛丼'と'ラーメン'を、'drink'で'コーラ'を設定し、'sweets'は未設定の場合、各関数で取得できる値は次のようになる。
関数名 | キー | 取得できた値 |
---|---|---|
post_custom | 'food' | { '牛丼', 'ラーメン' } |
'drink' | 'コーラ' | |
'sweets' | false | |
get_post_custom_values | 'food' | { '牛丼', 'ラーメン' } |
'drink' | { 'コーラ' } | |
'sweets' | NULL | |
get_post_meta ( $single = false ) | 'food' | { '牛丼', 'ラーメン' } |
'drink' | { 'コーラ' } | |
'sweets' | { } | |
get_post_meta ( $single = true ) | 'food' | '牛丼' |
'drink' | 'コーラ' | |
'sweets' | '' | |
get_post_custom | - | { 'food'=>{ '牛丼', 'ラーメン' }, 'drink'=>{ 'コーラ' }, ほか } |
※get_metadata で取得できる値は get_post_meta と同じ。
※get_post_custom で取得できる値(配列)には、通常公開されていない値を含む。
カスタムフィールドの値を設定・更新する
さて一般的なテーマの場合は、カスタムフィールドの値を取得する関数の利用で済むわけだが、投稿ページをカスタマイズしたり、プラグインでカスタムフィールドの値を操作する場合は、update_post_meta や delete_post_meta といった関数を使用することになる。なお、未設定のカスタムフィールドの値を登録する場合は add_post_meta が用意されているが、update_post_meta で代用できるので、add_post_meta を利用することはないだろう。
最終更新 : 2012年06月22日 17:26
関連
お勧め
get_next_image_link(2021年7月25日 更新)
wp_after_insert_post(2020年12月11日 更新)
wp_save_post_revision(2024年1月10日 更新)
wp_debug_backtrace_summary(2012年6月15日 更新)
nocache_headers(2018年5月27日 更新)