説明
パラメータ
- $meta_typeオブジェクトタイプとして'post'、'comment'、'term'、'user'のいずれかを指定。
- $object_id関連するWordPressオブジェクトのIDを指定。
- $meta_keyメタキーを指定。
- $meta_valueメタ情報の値を指定。
- $prev_value更新前のメタ情報の値を指定(省略時は'')。
返り値
メタ情報を更新できた場合はtrueを返す。該当するメタ情報が存在せず追加した場合はそのメタ情報IDを返す。それ以外の場合はfalseを返す。注意
本関数は投稿メタ(カスタムフィールド)やコメントメタなどのメタ情報を更新する場合に使用し、投稿メタを更新する update_post_meta関数や、ユーザーメタを更新する update_user_meta関数などから呼び出される。
[3.1.0]"update_{$meta_type}_metadata"フィルターのコールバック関数にてメタ情報の適切な処理を行い、null以外を返した場合は、以降の処理は行われず、返した値をboolでキャストしたものが本関数の返り値となる。
既存のメタ情報が存在しない場合は新しくメタ情報が登録され、その返り値はメタ情報のIDになるため、返り値をtrueかどうかを判定する場合は注意が必要である。また追加時は本関数内のいくつかのアクションは実行されない。
メタ情報の更新に失敗した場合、"updated_{$meta_type}_meta"アクションと'updated_postmeta'アクションは実行されない。
パラメータ$meta_typeが'post'の場合に実行される'update_postmeta'および'updated_postmeta'アクションの第4パラメータはシリアライズされた値になる。それぞれの直前に実行される'update_post_meta'および'updated_post_meta'アクションの第4パラメータとは異なるので要注意。
使用例
- カスタムフィールド'price'を更新する
update_metadata( 'post', $post->ID, 'price', 100 );
フィルター
[3.1.0]メタ情報の更新(または追加)する前に"update_{$meta_type}_metadata"フィルターを呼び出す。パラメータ$checkにはnullが、$object_idには絶対値処理されたオブジェクトIDが、$meta_keyと$prev_valueには本関数が受け取った内容が、$meta_valueにはサニタイズした内容が格納されている。$check = apply_filters( "update_{$meta_type}_metadata", $check, $object_id, $meta_key, $meta_value, $prev_value );
アクション
[2.9.0]メタ情報を更新する前に"update_{$meta_type}_meta"アクションを呼び出す。パラメータ$meta_idにはメタ情報IDが、$object_idには絶対値処理されたオブジェクトIDが、$meta_keyには本関数が受け取った内容が、$_meta_valueにはシリアライズされていない値が格納されている。do_action( "update_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
do_action( 'update_postmeta', $meta_id, $object_id, $meta_key, $meta_value );
do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
do_action( 'updated_postmeta', $meta_id, $object_id, $meta_key, $meta_value );
ソースファイル
/wp-includes/meta.php最終更新 : 2024年06月25日 15:44
関連
お勧め
Login rebuilder 2.3.0の新機能を紹介(2018年5月27日 更新)
プラグイン「Login rebuilder」はログイン時の履歴(ログ)や不正なログインページへのアクセス履歴を保存している。これらの履歴情報はダッシュボートで確認できるが、バージョン2.3.0においてそれぞれがダウンロードできるようになった。
古めのリビジョンを削除した時のメモ(2022年5月16日 更新)
大きく育ったデータベースを整理するため、古めのリビジョンとそれに紐づいたカスタムフィールドデータを削除。と思ったら「The total number of locks exceeds the lock table size」というエラーが発生して削除できなかった。
決まった値を返すだけの関数群(2018年5月27日 更新)
WordPressのソースコードを眺めているとフィルター関数名で'__return_○○'が指定されている部分を時々見かけます。それらの関数定義を見てみると、すべて決まった値を単純に返すだけでした。これらの関数がちょっと気になったので、まとめてみました。
「Align widgets horizontally」プラグインのフィルター使用例(2024年5月15日 更新)
ダッシュボードのウィジェットを横並びに変える「Align widgets horizontally」プラグインには緒設定を変更できるフィルターが用意されている。ここではフィルターの使い方と設定できる項目について紹介する。
WP_Postオブジェクトで投稿情報を直感的に使う(2012年10月4日 更新)
WordPress 3.5で登場するであろう WP_Postクラス。WordPressの投稿情報は、投稿情報本体のほか、カテゴリーや投稿タグ、カスタムフィールドなど、いくつかに分散して記録され、それぞれの情報を取得する際は、いくつかの関数をしていた。新しいWP_Postクラスにより、その習慣とおさらばできるかもしれない。