WordPress 刪除文章的同時(shí)自動(dòng)刪除文內(nèi)的圖片和附件

麥子 優(yōu)化維護(hù)41字?jǐn)?shù) 820閱讀2分44秒閱讀模式

對(duì)于我們?cè)诰S護(hù) WordPress 內(nèi)核的網(wǎng)站時(shí)候,有些文章可能需要?jiǎng)h除,但是同時(shí)文內(nèi)的圖片和附件還在網(wǎng)站中會(huì)占用服務(wù)器的空間,最好的辦法肯定是一并刪除。當(dāng)然,默認(rèn)如果沒(méi)有特殊處理的話(huà),是需要我們單獨(dú)的到媒體庫(kù)中刪除對(duì)應(yīng)的圖片的。

這里有沒(méi)有辦法可以在刪除文章的時(shí)候同時(shí)自動(dòng)刪除內(nèi)容中自帶的附件和圖片。

/* 刪除文章自動(dòng)刪除文內(nèi)的圖片和附件 */  
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');

這里將內(nèi)容添加到當(dāng)前主題的 Functions.php 文件,需要徹底刪除文章才會(huì)被刪除。

投上你的一票
 
  • 本文由 麥子 發(fā)表于 2024年9月28日 10:36:19
  • 轉(zhuǎn)載請(qǐng)務(wù)必保留本文鏈接:http://bjj.org.cn/autodel-wppostimg.html
  • WordPress同步刪除附件