Как сделать чтобы при удалении записи, все ее аттачменты и превьюшки тоже удалялись?
Можно удалять картинки при редактировании поста, а потом и сам пост удалять…
Но у меня такая ситуация: пост добавляется пользователем (объявление), картинка загружается в папку с изображениями для объявлений и ей создаются превью. Через какое-то время объявление удаляется автоматически, плагином 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)