Switch language

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




wp_restore_image [ WordPress Function ]

wp_restore_image ( $post_id )
Defined at:



No description yet.

Source


<?php
function wp_restore_image($post_id) {
    
$meta wp_get_attachment_metadata($post_id);
    
$file get_attached_file($post_id);
    
$backup_sizes get_post_meta$post_id'_wp_attachment_backup_sizes'true );
    
$restored false;
    
$msg = new stdClass;

    if ( !
is_array($backup_sizes) ) {
        
$msg->error __('Cannot load image metadata.');
        return 
$msg;
    }

    
$parts pathinfo($file);
    
$suffix time() . rand(100999);
    
$default_sizes get_intermediate_image_sizes();

    if ( isset(
$backup_sizes['full-orig']) && is_array($backup_sizes['full-orig']) ) {
        
$data $backup_sizes['full-orig'];

        if ( 
$parts['basename'] != $data['file'] ) {
            if ( 
defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
                
// delete only if it's edited image
                
if ( preg_match('/-e[0-9]{13}\./'$parts['basename']) ) {
                    
$delpath apply_filters('wp_delete_file'$file);
                    @
unlink($delpath);
                }
            } else {
                
$backup_sizes["full-$suffix"] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $parts['basename']);
            }
        }

        
$restored_file path_join($parts['dirname'], $data['file']);
        
$restored update_attached_file($post_id$restored_file);

        
$meta['file'] = _wp_relative_upload_path$restored_file );
        
$meta['width'] = $data['width'];
        
$meta['height'] = $data['height'];
        list ( 
$uwidth$uheight ) = wp_constrain_dimensions($meta['width'], $meta['height'], 12896);
        
$meta['hwstring_small'] = "height='$uheight' width='$uwidth'";
    }

    foreach ( 
$default_sizes as $default_size ) {
        if ( isset(
$backup_sizes["$default_size-orig"]) ) {
            
$data $backup_sizes["$default_size-orig"];
            if ( isset(
$meta['sizes'][$default_size]) && $meta['sizes'][$default_size]['file'] != $data['file'] ) {
                if ( 
defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
                    
// delete only if it's edited image
                    
if ( preg_match('/-e[0-9]{13}-/'$meta['sizes'][$default_size]['file']) ) {
                        
$delpath apply_filters'wp_delete_file'path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) );
                        @
unlink($delpath);
                    }
                } else {
                    
$backup_sizes["$default_size-{$suffix}"] = $meta['sizes'][$default_size];
                }
            }

            
$meta['sizes'][$default_size] = $data;
        } else {
            unset(
$meta['sizes'][$default_size]);
        }
    }

    if ( !
wp_update_attachment_metadata($post_id$meta) || !update_post_meta$post_id'_wp_attachment_backup_sizes'$backup_sizes) ) {
        
$msg->error __('Cannot save image metadata.');
        return 
$msg;
    }

    if ( !
$restored )
        
$msg->error __('Image metadata is inconsistent.');
    else
        
$msg->msg __('Image restored successfully.');

    return 
$msg;
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



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