説明
wp_delete_attachment() は、添付ファイルを削除する関数です。
基本構文
wp_delete_attachment( int $post_id, bool $force_delete = false ): WP_Post|false|null
引数
$post_id:添付ファイルのID$force_delete:trueで完全削除
戻り値
削除した添付ファイル。
使い方(サンプル)
wp_delete_attachment( 45, true );
注意点
trueを指定すると、各サイズの画像を含むファイルも削除されます。復元できません。
実務での使いどころ
- メディアを、プログラムから削除するとき。
- 投稿を削除するときに、関連する画像も削除するとき。
よくあるミスと対処
- メディアのゴミ箱が有効でない(既定)と、
$force_deleteを指定しなくても、ファイルは完全に削除される。復元できない。 - 画像が、記事の本文に使われていても、削除してしまう。
- 削除は、元に戻せない。実行前に、バックアップを取る。
NG例
wp_delete_attachment( $id ); // 既定でも、ファイルが完全に削除される
OK例
if ( current_user_can( 'delete_post', $id ) ) {
wp_delete_attachment( $id, true ); // 完全に削除することを、明示する
}
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_delete_attachment() |
メディアを削除する |
wp_insert_attachment() |
メディアとして登録する |
wp_delete_post() |
投稿を削除する |
関連項目
wp_delete_post()、wp_insert_attachment()
公式リファレンス:wp_delete_attachment() | Function | WordPress Developer Resources

コメント