Chia sẻ code xóa ảnh đi kèm khi xóa bài viết và sản phẩm trên WordPress

Tại sao cần xóa ảnh đính kèm với bài viết khi xóa bài

Khi quản trị và vận hành website trên nền tảng wordpress, đôi khi chúng ta sẽ phải xóa đi các bài viết cà các sản phẩm không cần thiết trên website. Tuy nhiên khi xóa bài viết và sản phẩm thì không thể xóa luôn đc cả các hình ảnh đi kèm trong bài viết và sản phẩm đó, trừ khi bạn sử dụng thêm các trình cắm (plugin) cài vào web.

Với website ít bài viết hay sản phẩm , bạn có thể thực hiện thủ công là xóa bài viết và sản phẩm . Sau đó vào mục media check và xóa các hình ảnh trong bài viết và sản phẩm đó. Mặc dù vậy, việc làm này cũng thủ công và mất thời gian.

Chưa kể đến khi website bạn có nhiều sản phẩm hay bài viết thì việc thực hiện thủ công như vậy là bất khả thi , và bạn phải cài plugin vào web để scan và xóa nhưng cũng sẽ không đc chuẩn.

Code xóa ảnh khi xóa bài viết và sản phẩm trên WordPress

Vậy phải code như thế nào ?

Để giải quyết vấn đề trên, shopcode sẽ mách bạn chỉ với đoạn code ngắn bạn có thể thực hiện công việc đó một cách dễ dàng mà không ảnh hưởng đến trải nghiệm trang web.. Bạn chỉ cần coppy đoạn code dưới đây bỏ vào file function.php của theme mà bạn đang sử dụng là được.

/*Xóa ảnh khi xóa sản phẩm*/
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' );

Chức năng của đoạn code 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.

Kết

Như vậy là mình đã giới thiệu tới các bạn đoạn code xóa ảnh khi xóa bài viết và sản phẩm trên WordPress. Hi vọng sẽ giúp ích được cho các bạn trong quá trình quản trị và vận hành website.

Chúc các bạn thành công!

Trả lời