WordPress刪除文章時,文章上傳到媒體庫圖片等不會被自動刪除,占用網站空間,那么WordPress在刪除文章后如何清理圖片附件呢?接下來為大家分享一下幾段代碼,可以自動刪除文章時的縮略圖和圖片附件,使您不必手動轉到媒體庫查找和刪除,準確高效。
功能實現代碼如下:
//刪除文章時刪除圖片附件開始 function delete_post_and_attachments($post_ID) { global $wpdb; //刪除特色圖片 $thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); foreach ( $thumbnails as $thumbnail ) { wp_delete_attachment( $thumbnail->meta_value, true ); } //刪除圖片附件 $attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" ); foreach ( $attachments as $attachment ) { wp_delete_attachment( $attachment->ID, true ); } $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); } add_action('before_delete_post', 'delete_post_and_attachments'); //刪除文章時刪除圖片附件
使用方法
您可以通過將上面的代碼放在主題functions.php文件的底部,就可以成功添加了。
添加代碼注意事項:
刪除文章時,先執行函數內容、刪除功能圖片和圖片附件,但如果使用action delete_post而不是before_delete_post,將導致刪除文章后因媒體附件與文章關聯已取消而無法正確刪除。