Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_delete_attachment [ WordPress Function ]

wp_delete_attachment ( $post_id, $force_delete = false )
Parameters:
  • (int) $post_id Attachment ID.
  • (bool) $force_delete Whether to bypass trash and force deletion. Defaults to false.
Uses:
Returns:
  • (mixed) False on failure. Post data on success.
Defined at:



Trashes or deletes an attachment.

When an attachment is permanently deleted, the file will also be removed. Deletion removes all post meta fields, taxonomy, comments, etc. associated with the attachment (except the main post).

The attachment is moved to the trash instead of permanently deleted unless trash for media is disabled, item is already in the trash, or $force_delete is true.

Source


<?php
function wp_delete_attachment$post_id$force_delete false ) {
    global 
$wpdb;

    if ( !
$post $wpdb->get_row$wpdb->prepare("SELECT * FROM $wpdb->posts WHERE ID = %d"$post_id) ) )
        return 
$post;

    if ( 
'attachment' != $post->post_type )
        return 
false;

    if ( !
$force_delete && EMPTY_TRASH_DAYS && MEDIA_TRASH && 'trash' != $post->post_status )
        return 
wp_trash_post$post_id );

    
delete_post_meta($post_id'_wp_trash_meta_status');
    
delete_post_meta($post_id'_wp_trash_meta_time');

    
$meta wp_get_attachment_metadata$post_id );
    
$backup_sizes get_post_meta$post->ID'_wp_attachment_backup_sizes'true );
    
$file get_attached_file$post_id );

    
$intermediate_sizes = array();
    foreach ( 
get_intermediate_image_sizes() as $size ) {
        if ( 
$intermediate image_get_intermediate_size$post_id$size ) )
            
$intermediate_sizes[] = $intermediate;
    }

    if ( 
is_multisite() )
        
delete_transient'dirsize_cache' );

    
do_action('delete_attachment'$post_id);

    
wp_delete_object_term_relationships($post_id, array('category''post_tag'));
    
wp_delete_object_term_relationships($post_idget_object_taxonomies($post->post_type));

    
delete_metadata'post'null'_thumbnail_id'$post_idtrue ); // delete all for any posts.

    
$comment_ids $wpdb->get_col$wpdb->prepare"SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d"$post_id ));
    foreach ( 
$comment_ids as $comment_id )
        
wp_delete_comment$comment_idtrue );

    
$post_meta_ids $wpdb->get_col$wpdb->prepare"SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d "$post_id ));
    foreach ( 
$post_meta_ids as $mid )
        
delete_metadata_by_mid'post'$mid );

    
do_action'delete_post'$post_id );
    
$wpdb->delete$wpdb->posts, array( 'ID' => $post_id ) );
    
do_action'deleted_post'$post_id );

    
$uploadpath wp_upload_dir();

    if ( ! empty(
$meta['thumb']) ) {
        
// Don't delete the thumb if another attachment uses it
        
if (! $wpdb->get_row$wpdb->prepare"SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d"'%' $meta['thumb'] . '%'$post_id)) ) {
            
$thumbfile str_replace(basename($file), $meta['thumb'], $file);
            
$thumbfile apply_filters('wp_delete_file'$thumbfile);
            @ 
unlinkpath_join($uploadpath['basedir'], $thumbfile) );
        }
    }

    
// remove intermediate and backup images if there are any
    
foreach ( $intermediate_sizes as $intermediate ) {
        
$intermediate_file apply_filters'wp_delete_file'$intermediate['path'] );
        @ 
unlinkpath_join($uploadpath['basedir'], $intermediate_file) );
    }

    if ( 
is_array($backup_sizes) ) {
        foreach ( 
$backup_sizes as $size ) {
            
$del_file path_joindirname($meta['file']), $size['file'] );
            
$del_file apply_filters('wp_delete_file'$del_file);
            @ 
unlinkpath_join($uploadpath['basedir'], $del_file) );
        }
    }

    
$file apply_filters('wp_delete_file'$file);

    if ( ! empty(
$file) )
        @ 
unlink($file);

    
clean_post_cache$post );

    return 
$post;
}
?>

Examples [ wp-snippets.com ]

Top Google Search Results

More ...

User discussions [ wordpress.org ]

0 User Note(s)

None yet. Be the first!

Add New ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics