기사 삭제 시 WordPress에서 이미지 내용을 삭제하도록 하는 방법: 자세한 해결 방법

워드프레스(WordPress)를 사용하는 웹마스터라면 분명히 경험해 볼 것입니다. 일러스트레이션용 기사를 게시할 때마다 날짜를 기준으로 프로그램 디렉토리에 해당 날짜에 해당하는 폴더가 자동으로 생성됩니다. 시간이 길어질수록 더 많은 디렉토리가 생성됩니다. 게다가 웹마스터마다 사용하는 서버 구성도 다르기 때문에 서버가 작을 경우, 직접 파일을 삭제했는데도 기사에 첨부된 이미지를 제때 정리하지 못하는 경우 디스크에서 많은 이미지가 손실되어 결과적으로 많은 문제가 발생할 수 있습니다. 원치 않는 이미지 파일이 WordPress에 저장됩니다.

다음은 인터넷에서 수집한 내용으로 워드프레스의 이미지 기능과 파일 삭제 시 이미지 첨부 파일을 삭제하는 데 사용할 수 있으며, 필요에 따라 코드를 분할하거나 모두 사용할 수 있습니다.

 
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

/* 기사 삭제 시 이미지 첨부 파일 삭제*/  
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( "meta_key = '_thumbnail_id' AND post_id = $post_ID인 $wpdb->postmeta에서 삭제" );  
}  
add_action('before_delete_post', 'delete_post_and_attachments');

지침

성공적으로 추가하려면 테마 function.php 파일의 <?php 코드 아래에 위 코드를 입력하세요.

지침

기사를 삭제할 때 먼저 추천 이미지와 이미지 첨부 파일을 삭제하는 함수 내용을 실행하지만 before_delete_post 대신 delete_post 액션을 사용하면 기사 삭제 후 미디어 첨부 파일이 제대로 삭제되지 않습니다. 미디어 첨부가 취소되어 기사가 취소되었습니다.

추천

출처blog.csdn.net/winkexin/article/details/131761309