メタIDとは?

メタIDとは、ワードプレスのメタ値(meta_value)に一意でついている整数の番号です。メタ値のキー(meta_key)は一つに複数の値を持ちえますが、メタIDはメタ値に一つだけになります。

$metaid = update_post_meta( $post_id, $meta_key, $meta_value, $prev_value );
$metaid = add_post_meta( $post_id, $meta_key, $meta_value, $unique );

メタIDは上記のようにupdate_post_metaやadd_post_metaが成功したときの返り値となっています。

メタ値(カスタムフィールド)をIDで一意の値を一発で取得する

ワードプレスには、投稿や固定ページに紐づいた任意の値を書き込む機能がプログラムされています。このメタバリューは、一般的に get_post_metaやupdate_post_metaで取得や更新を行いますが、キー値に複数の値がある場合はメタバリューに入っている内容も指定してようやく一意の値が取得できる形になりややこしい処理が必要になることがあります。

この場合に、メタID(meta_id)を利用すると一発で取得できて便利です。メタID(meta_id)を利用してメタバリューを取得するプログラムは下記のようになります。

$metadata = get_metadata_by_mid('post', $metaid ); //$metaidにメタIDを指定します
$metavalue = $metadata->meta_value; //ここでメタバリューを抜きだしています

※’post’のところは(’comment’、’post’、’term’、’user’)の4種を指定できます。それぞれコメントメタ、ポストメタ、タームメタ、ユーザーメタを所得したい場合に指定してください。

メタ値をメタIDで更新する

次にメタ値をメタIDで更新する方法を見ていきます。一般的にはupdate_post_metaでメタ値を更新しますがこの命令にはメタIDを指定できませんので直接SQL分を発行してメタ値を更新します。

global $wpdb;
$result = $wpdb->get_results("UPDATE $wpdb->postmeta SET `meta_value` = 'メタバリュー(更新したい値)' WHERE `meta_id` = ".$metaid ); //$metaidにメタIDを指定します

ワードプレスのプラグイン、テーマ作成、その他カスタマイズのご相談・ご依頼はWPドクターまでお気軽にお送りください