update_metadata

説明

bool | int update_metadata( string $meta_type, int $object_id, string $meta_key, mixed $meta_value [ , mixed $prev_value = '' ] )
WordPressオブジェクトのメタ情報を更新する。

パラメータ

  • $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_meta( '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 );
[2.9.0]パラメータ$meta_typeが'post'の場合、メタ情報を更新する前に'update_postmeta'アクションを呼び出す。パラメータ$meta_idにはメタ情報IDが、$object_idには絶対値処理されたオブジェクトIDが、$meta_keyには本関数が受け取った内容が、$meta_valueにはシリアライズされた値が格納されている。
do_action( 'update_postmeta', $meta_id, $object_id, $meta_key, $meta_value );
[2.9.0]メタ情報を更新した後に"updated_{$meta_type}_meta"アクションを呼び出す。パラメータ$meta_idにはメタ情報IDが、$object_idには絶対値処理されたオブジェクトIDが、$meta_keyには本関数が受け取った内容が、$_meta_valueにはシリアライズされていない値が格納されている。
do_action( "updated_{$meta_type}_meta", $meta_id, $object_id, $meta_key, $_meta_value );
[2.9.0]パラメータ$meta_typeが'post'の場合、メタ情報を更新した後に'updated_postmeta'アクションを呼び出す。パラメータ$meta_idにはメタ情報IDが、$object_idには絶対値処理されたオブジェクトIDが、$meta_keyには本関数が受け取った内容が、$meta_valueにはシリアライズされた値が格納されている。
do_action( 'updated_postmeta', $meta_id, $object_id, $meta_key, $meta_value );

ソースファイル

/wp-includes/meta.php

最終更新 : 2024年05月25日 15:37



お勧め

JavaScriptテンプレートを使ってみた(2018年8月21日 更新)

前回の記事」で取り上げた「WordPress Events and News」ウィジェットでは入力された地名のAJAX処理してその地名近隣のイベント情報を表示している。特に表示部分では「JavaScriptテンプレート」が採用されており、今更ながら調べてみた。

投稿ページでユニークなテンプレートを選択しよう(2018年5月27日 更新)

4.7の変更点に「投稿タイプテンプレート」がある。これは従来固定ページ('page')向けに任意のテンプレートを適用できる機能が拡張されたもので、投稿ページ('post')はもちろんカスタム投稿タイプのページにも適用可能になっている。

任意の名前でエラーログファイルを指定する(2019年2月15日 更新)

来週にはWordPress 5.1がリリース。RC1のソースコードを見ていると、 wp_debug_mode関数が変更されており、興味深かった。

投稿内容のid属性などを保存するための対策(2012年6月15日 更新)

WordPress 3.4にアップデートしたとある環境で投稿記事を保存すると、divタグなどのid属性がクリアされて保存するようになった(id属性が保存できなくなった)。ここでは、その対策方法の1つを紹介しておく。

query_posts(WP_Queryクラス)でカテゴリーを絞り込む(2011年9月14日 更新)

久しぶりに query_posts関数を見直してみると、見知らぬパラメータがいくつか追加されていた。気になったのでカテゴリー関係の指定を'tax_query'パラメータを交えて整理してみた。