wp_delete_attachment() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました