WordPress目前是使用范圍最廣的博客程序,今天跟大家分享一個技巧:刪除文章同時,自動刪除圖片附件以及特色圖像。
WordPress刪除文章時,文章內(nèi)所上傳到媒體庫的圖片等附件不會自動刪除,占用了網(wǎng)站空間,下面通過幾行代碼的簡單方式實現(xiàn)在刪除文章時自動刪除縮略圖以及圖片附件,這樣就不用手動去媒體庫尋找并刪除,準確而且效率高。
功能實現(xiàn)代碼:
/* 刪除文章時刪除圖片附件 */
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文件<?php
代碼的下面即可添加成功,并在主題上運行了。
注意事項:
當你在刪除文章時先執(zhí)行函數(shù)內(nèi)容,刪除特色圖片以及圖片附件,但是如果在使用action delete_post
而不是before_delete_post
將導(dǎo)致刪除文章后因媒體附件與文章關(guān)聯(lián)已取消而無法正確刪除