概要
delete_post_meta関数は、WordPressのカスタムフィールドに関連する情報を削除するために使用されます。この関数は、特定の投稿IDに関連付けられたカスタムフィールドデータを削除するため、プロジェクトにおいてさまざまな用途に活用されます。具体的には、以下のようなシナリオでよく使われます。
- 投稿やページの不要なカスタムフィールドを整理する際。
- 特定の条件に基づいて特定のカスタムデータを削除する際。
- 提供する情報の整合性を保つために不正なカスタムデータを排除する際。
- カスタムやプラグインの更新を行う際に、古いフィールドをクリーンアップする際。
- データベースのサイズを縮小するためのメンテナンス作業として。
- 投稿の更新後に、不要になったメタデータを削除する際。
- 特定のユーザーや条件に基づくコンテンツのカスタマイズを行う際。
- プラグイン開発において、異なる状態の投稿を整える際。
構文
delete_post_meta( int $post_id, string $meta_key, mixed $meta_value = '' );
パラメータ
- $post_id (int): 投稿のID。
- $meta_key (string): 削除するメタデータのキー。
- $meta_value (mixed): (オプション)削除するメタデータの値。この値が指定された場合、該当する値に関連するメタデータのみが削除されます。
戻り値
- (bool): 成功した場合はtrue、失敗した場合はfalseを返します。
関連する関数
使用可能なバージョン
- この関数はWordPress 2.9以降で使用可能です。
コアファイルのパス
wp-includes/meta.php
この関数のアクションでの使用可能性
| アクション | 使用の有無 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード1: 簡単なカスタムフィールドの削除
$post_id = 123; // 投稿ID
$meta_key = 'custom_field'; // 削除するメタキー
delete_post_meta($post_id, $meta_key);
このコードは、指定した投稿IDに関連するカスタムフィールドを削除します。
サンプルコード2: 特定の値を持つカスタムフィールドを削除
$post_id = 456; // 投稿ID
$meta_key = 'custom_field'; // メタキー
$meta_value = 'value_to_delete'; // 削除する値
delete_post_meta($post_id, $meta_key, $meta_value);
このコードは、指定した投稿IDのカスタムフィールドから特定の値を持つメタデータを削除します。
サンプルコード3: すべてのカスタムフィールドの削除
$post_id = 789; // 投稿ID
// すべてのカスタムフィールドを取得
$meta_data = get_post_meta($post_id);
foreach($meta_data as $meta_key => $values) {
delete_post_meta($post_id, $meta_key);
}
このコードは、特定の投稿からすべてのカスタムフィールドを削除します。
サンプルコード4: 条件付きでカスタムフィールドを削除
$post_id = 1011; // 投稿ID
$meta_key = 'status'; // メタキー
$status = get_post_meta($post_id, $meta_key, true);
// 状態が特定の値の場合のみ削除
if ($status === 'archived') {
delete_post_meta($post_id, $meta_key);
}
このコードは、カスタムフィールドの値が「archived」の場合にだけ、そのフィールドを削除します。
サンプルコード5: 投稿が削除された時に自動でカスタムフィールドを削除
add_action('before_delete_post', 'delete_related_meta');
function delete_related_meta($post_id) {
delete_post_meta($post_id, 'related_field');
}
このコードは、投稿が削除される前に、関連するカスタムフィールドを自動で削除します。