Удаление поста вместе с аттачментами

Как сделать чтобы при удалении записи, все ее аттачменты и превьюшки тоже удалялись?
Можно удалять картинки при редактировании поста, а потом и сам пост удалять…

Но у меня такая ситуация: пост добавляется пользователем (объявление), картинка загружается в папку с изображениями для объявлений и ей создаются превью. Через какое-то время объявление удаляется автоматически, плагином Auto Prune Posts, а картинки остаются. Даже если вручную редактировать объявление, то все равно можно удалить миниатюру только из поста, но на диске она остается.

Можете что-нибудь посоветовать?

если поможет – вот кусок где добавляется объявление

$new_post = array(
                         'post_title' => $_POST['new_post_title'],
                         'post_content' => $_POST['new_post_content'],
                         'post_status' => 'publish',
                         'post_author' => 1,
                         'post_category' => array($_POST['cat2'])
                      );
                    $new_post_id = wp_insert_post( $new_post, $wp_error ); 
                    
                    //echo 'пост с контентом id - '.$new_post_id;
                    
                    if (($new_post_id)and($add_img) ) {//если есть катинка
                        
                        $new_post_img = array(//добавляем запись с картинкой 
                         'post_title' => $_POST['new_post_title'],
                         'post_content' => '',
                         'post_status' => 'inherit',
                         'post_mime_type' => 'image/'.$p[1]
                      );
                      $new_post_img_id =  wp_insert_attachment( $new_post_img, $file_name, $new_post_id );  //добавили запись с картинкой
                       require_once(ABSPATH . 'wp-admin/includes/image.php');
                       $new_post_img = wp_generate_attachment_metadata( $new_post_img_id, $file_name );
                       wp_update_attachment_metadata( $new_post_img_id, $new_post_img );
                      
                      
     
                      $res = $wpdb->insert( $wpdb->postmeta, array(//в пост с контентом добавляем мета с id поста с картинкой
                      'post_id' => $new_post_id,
                      'meta_key' => '_thumbnail_id',
                      'meta_value' => $new_post_img_id)                      
                      );    

                      set_post_thumbnail($new_post_id, $new_post_img_id);//крепим картинку к объявлению                                                                                
                      //echo '<br />удалось прикрепить? - '.$set_th;
                     // var_dump ($set_th);
                      
                      $res = $wpdb->insert( $wpdb->postmeta, array(
                      'post_id' => $new_post_id,
                      'meta_key' => 'user_adv',
                      'meta_value' => 1)
Anonymous
Отправить
Ответ на: