WordPressの投稿を削除した時に紐付いている画像も削除する方法

WordPressの投稿を削除した時に紐付いている画像も削除する方法

WordPressの投稿を削除した時に紐付いている画像も削除する方法

WordPressでは、投稿を削除しても、投稿に使用した画像(アイキャッチ画像や投稿内に挿入した画像)までは削除されません。

投稿を削除すると紐付いている画像も削除されるようにする方法が、NxWorldさんで解説されていたのでご紹介いたします。

WordPressの投稿を削除した時に紐付いている画像も削除する方法

functions.phpに以下のコードを追加することで、投稿を削除した際に紐付いている画像も削除されるようになります。


add_action( 'before_delete_post', 'nxw_delete_post_attachment' );
function nxw_delete_post_attachment( $post_id ) {
  $args = array(
    'numberposts' => -1,
    'post_parent' => $post_id,
    'post_type' => 'attachment',
    'post_status' => 'any',
    'post_mime_type' => 'image'
  );
  $attachments = get_children( $args );
  foreach( $attachments as $attachment ) {
    wp_delete_attachment( $attachment->ID, true );
  }
}

上記コードを追加して、ゴミ箱に入れた投稿で「完全に削除する」を実行すると、紐付いた画像も一緒に削除されます。

複数の投稿で同じ画像を使用していた場合でも、1つ投稿を削除すると画像も消えてしまうので注意が必要です。

あとがき

投稿がなくなれば使用していた画像も必要なくなることがほとんどなので、サーバー上にゴミを増やさないためにも、投稿と紐付いている画像が一緒に削除されるのは良いですね。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です