Ya, untuk Anda yang ingin melakukan penghapusan pada postingan ataupun pages, kadang ingin sekaligus dengan media files yang dilampirkan pada postingan tersebut, baik untuk media seperti image / gambar, video ataupun audiionya kan!
Nah dengan panduan ini, anda bisa langsung menghapus media files yang dilampirkan saat melakukan delete postingan, caranya adalah…
1. Buka Dashboard WordPress:
2. Navigasi ke Editor Tema:
3. Pilih functions.php:
4. Tambahkan Script:
// Auto-delete attachments when a post is permanently deleted
function wdp_delete_post_attachments( $post_id ) {
// Batasi ke tipe konten yang diinginkan
$allowed_types = array( 'post', 'page' ); // tambahkan custom post type jika perlu, mis: 'undangan'
$post_type = get_post_type( $post_id );
if ( ! in_array( $post_type, $allowed_types, true ) ) {
return;
}
// Ambil semua attachment yang PARENT-nya post ini (status 'attached')
$attachments = get_attached_media( '', $post_id );
if ( ! empty( $attachments ) ) {
foreach ( $attachments as $attachment ) {
// true = langsung hapus permanen (bypass trash)
wp_delete_attachment( $attachment->ID, true );
}
}
}
add_action( 'before_delete_post', 'wdp_delete_post_attachments' );
5. Simpan Perubahan:
Untuk penghapusan otomatis ini hanya image yang di upload melalui post medianya langsung, bukan melalui tab media di dashboard wp adminnya. Pastikan untuk membuat backup situs Anda sebelum melakukan perubahan pada file functions.php. Jika ada kesalahan dalam script, ini bisa menyebabkan situs Anda menjadi tidak dapat diakses. Untuk media files yang dilampirkan akan terhapus saat post / pages di delete secara permanently, bukan saat dimasukkan ke ‘trash’.
Silahkan dicoba, semoga bermanfaat.