WordPress刪除文章時(shí),文章上傳到媒體庫(kù)圖片等不會(huì)被自動(dòng)刪除,占用網(wǎng)站空間,那么WordPress在刪除文章后如何清理圖片附件呢?接下來(lái)為大家分享一下幾段代碼,可以自動(dòng)刪除文章時(shí)的縮略圖和圖片附件,使您不必手動(dòng)轉(zhuǎn)到媒體庫(kù)查找和刪除,準(zhǔn)確高效。
功能實(shí)現(xiàn)代碼如下:
//刪除文章時(shí)刪除圖片附件開始 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'); //刪除文章時(shí)刪除圖片附件
使用方法
您可以通過將上面的代碼放在主題functions.php文件的底部,就可以成功添加了。
添加代碼注意事項(xiàng):
刪除文章時(shí),先執(zhí)行函數(shù)內(nèi)容、刪除功能圖片和圖片附件,但如果使用action delete_post而不是before_delete_post,將導(dǎo)致刪除文章后因媒體附件與文章關(guān)聯(lián)已取消而無(wú)法正確刪除。