WordPress刪除文章時(shí),文章內(nèi)所上傳到媒體庫(kù)的圖片等附件不會(huì)自動(dòng)刪除,占用了網(wǎng)站空間,因此下面說(shuō)明通過(guò)幾行代碼的簡(jiǎn)單方式實(shí)現(xiàn)在刪除文章時(shí)自動(dòng)刪除縮略圖以及圖片附件,這樣就不用手動(dòng)去媒體庫(kù)尋找并刪除,準(zhǔ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');
說(shuō)明
將上述代碼放到主題functions.php文件中即可使用,其在刪除文章時(shí)先執(zhí)行函數(shù)內(nèi)容,刪除特色圖片以及圖片附件,如果在使用action delete_post而不是before_delete_post將導(dǎo)致刪除文章后因媒體附件與文章關(guān)聯(lián)已取消而無(wú)法正確刪除。
新聞熱點(diǎn)
疑難解答
圖片精選