Trong quá trình làm web thì mình có lượm lặt được 1 số đoạn function khá hay nên mình sẽ share lại cho anh em tham khảo nhé.
Đoạn code dưới đây sẽ giúp anh em có thể xóa toàn bộ các file đính kèm, các hình ảnh ngay sau khi thực hiện việc xóa sản phẩm, xóa bài viết trong wordpress.
Việc này sẽ giúp anh em có thể giảm được dung lượng web, dọn được các file không cần thiết.
Các anh em copy đoạn coden này và dán vào file function nhé.
function delete_all_attached_media( $post_id ) {
if ( get_post_type($post_id) == "product" ) {
$attachments = get_attached_media( '', $post_id );
foreach ($attachments as $attachment) {
wp_delete_attachment( $attachment->ID, 'true' );
}
}
}
add_action( 'before_delete_post', 'delete_all_attached_media' );
Mình nói sơ qua về đoạn function này để anh em hiểu nhé, đoạn function này nó sẽ lấy toàn bộ các file đính kèm với $post_id được chỉ định, sau đó nó sẽ lấy id các file đính kém đó và xóa bằng hàm wp_delete_attachment.
Sau đó sẽ hook vào vị trí trước khi thực hiện xóa post.
Chúc các bạn thành công