この記事は最後に更新してから1年以上経過しています。

同じ名前のメタ情報をまとめて削除する

説明

WordPressには、投稿情報、コメント情報、ユーザ情報のそれぞれを拡張できるメタ情報の仕組みが用意されている。投稿情報のメタ情報は「カスタムフィールド」として投稿画面に用意されているので投稿者自身が随時操作できるほか、テーマやプラグインからの操作も容易である。今回の中身はそんなメタ情報の一括削除の話だ。

テーマやプラグインからカスタムフィールドを削除する場合は、 delete_post_meta関数を利用するが、一度に同じ名前のカスタムフィールドを削除する場合は delete_post_meta_by_key関数を利用できる。例えば、'pv'という名前のカスタムフィールドをすべて削除する場合は、次のようにすればいい。

delete_post_meta_by_key( 'pv' );

delete_post_meta_by_key関数の内部では、 delete_metadata関数を呼び出しているだけである。

return delete_metadata( 'post', null, $post_meta_key, '', true );

この呼び出しのポイントは第5パラメータがtrueを指定しているところ。このパラメータをtrueにすることで、第2パラメータの投稿IDは無視され、すべての投稿情報のカスタムフィールドを一度に削除することができる。

さてコメント情報やユーザ情報のメタ情報の削除には、今のところdelete_post_meta_by_key関数に相当する関数が用意されていない(たぶん)。これらのメタ情報を削除する場合は、次のようにdelete_metadata関数を利用することになる。

// コメント情報のメタ情報
delete_metadata( 'comment', null, $meta_key, '', true );

// ユーザ情報のメタ情報
delete_metadata( 'user', null, $meta_key, '', true );

テーマがプラグインで拡張したメタ情報を使わなくなった場合、そのまま放置するのは好ましくない。そんな使わなくなったメタ情報を、delete_post_meta_by_key関数やdelete_metadata関数を使ってまとめて削除するといいだろう。


最終更新 : 2014年03月21日 11:59


お勧め

wp_add_post_tags(2012年7月5日 更新)

mixed wp_add_post_tags( [ int $post_id = 0 [ , string $tags = '' ] ] )
投稿情報に投稿タグを追加する。

get_tags(2018年5月27日 更新)

array get_tags( [ mixed $args = '' ] )
条件を指定してタグ情報を検索し、マッチしたすべてのタグ情報を取得する。

wp_array_slice_assoc(2022年2月2日 更新)

array wp_array_slice_assoc( array $array, array $keys )
キーを指定して配列の一部を抽出する。

get_post_permalink(2022年11月6日 更新)

string | false get_post_permalink( [ int | WP_Post $id$post = 0 [ , bool $leavename = false [ , bool $sample = false ] ] ] )
カスタム投稿タイプの投稿ページのパーマリンクを取得する。

remove_query_arg(2024年3月21日 更新)

string remove_query_arg( string | string[] $key [ , bool | string $query = false ] )
クエリーURIからパラメータ(キー名=値)を削除する。