WordPress博客程序刪除文章時(shí)同時(shí)可以自動(dòng)刪除圖片以及附件的方法
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
現(xiàn)在用wordpress做博客或者建站的越來(lái)越多,在使用WordPress刪除文章的時(shí)候,會(huì)發(fā)現(xiàn)文章內(nèi)上傳到媒體庫(kù)的圖片以及其他格式的附件都不會(huì)自動(dòng)刪除,因此會(huì)大大的占用網(wǎng)站服務(wù)器的存儲(chǔ)空間,那么如何純代碼實(shí)現(xiàn)在WordPress刪除文章時(shí)自動(dòng)刪除圖片附件?咱今天來(lái)說(shuō)說(shuō)如何提供幾行代碼簡(jiǎn)單實(shí)現(xiàn)WordPress刪除文章時(shí)自動(dòng)刪除圖片附件的方法,這樣就不需要每次刪除文章的時(shí)候還得單獨(dú)去媒體庫(kù)清理無(wú)用的附件啦,準(zhǔn)確又高效,詳細(xì)的代碼如下:
/* 刪除文章時(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');
正確的食用方法如下:
將上述代碼放到當(dāng)前主題functions.php文件的最下面即可添加成功
PS注意事項(xiàng):
當(dāng)你在刪除文章時(shí)先執(zhí)行函數(shù)內(nèi)容,刪除特色圖片以及圖片附件,但是如果在使用 action delete_post 而不是 before_delete_post 將導(dǎo)致刪除文章后因媒體附件與文章關(guān)聯(lián)已取消而無(wú)法正確刪除。
WordPress刪除文章時(shí),文章內(nèi)所上傳到媒體庫(kù)的圖片等附件不會(huì)自動(dòng)刪除,占用了網(wǎng)站空間,因此下面說(shuō)明通過幾行代碼的簡(jiǎn)單方式實(shí)現(xiàn)在刪除文章時(shí)自動(dòng)刪除縮略圖以及圖片附件,這樣就不用手動(dòng)去媒體庫(kù)尋找并刪除,準(zhǔn)確而且效率高。
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!