Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta Data Loss #12

Open
vividentity opened this issue Jul 11, 2014 · 1 comment
Open

Meta Data Loss #12

vividentity opened this issue Jul 11, 2014 · 1 comment

Comments

@vividentity
Copy link

When uploading via the media library, all image meta data (thumbnail sizes) are lost, the resized images are uploaded to cloudfront, but the meta data does not exist, See example:

[thumbnail] => https://xxxxxxxxxxxxx.cloudfront.net/2014/07/
[thumbnail-width] => 150
[thumbnail-height] => 150
[medium] => https://xxxxxxxxxxxxx.cloudfront.net/2014/07/
[medium-width] => 300
[medium-height] => 199
[large] => https://xxxxxxxxxxxxx.cloudfront.net/2014/07/

as you can see the image path is not complete.

DATABASE: {s:9:"thumbnail";a:3:{s:4:"file";s:0:"";s:5:"width";i:150;s:6:"height";i:150;}

@vividentity
Copy link
Author

This is probably a really messy way of doing this, but ive created a temp fix:

function cloudfront_fix( $attachmentid, $item_img_details){
    // Get attachment metadata
    $attachment_metadata = wp_get_attachment_metadata( $attachmentid );
    // if metadata broken apply fix
    if( $attachment_metadata['sizes'][$item_img_details]['file'] == '' || empty( $attachment_metadata['sizes'][$item_img_details]['file'] )){
        $main_file = $attachment_metadata['file'];
        $thumb_height = $attachment_metadata['sizes'][$item_img_details]['height'];
        $thumb_width = $attachment_metadata['sizes'][$item_img_details]['width'];
        $edit_main_file = explode('.', $main_file);
        $remove_dates = explode('/', $edit_main_file[0]);
        $updated_meta = end( $remove_dates ) . '-' . $thumb_width . 'x' . $thumb_height . '.' . $edit_main_file[1];
        $attachment_metadata['sizes'][$item_img_details]['file'] = $updated_meta;
        wp_update_attachment_metadata( $attachmentid, $attachment_metadata );
    }
}
function fix_all_image_metadata(){
    if ( isset($_GET['fix']) && $_GET['fix'] == 'thumbs' ) {
        $args = array(
            'post_type' => 'attachment',
            'post_mime_type' =>'image',
            'post_status' => 'any',
            'posts_per_page' => -1
        );
        // get results
        $the_query = new WP_Query( $args );
        while( $the_query->have_posts() ){
            $the_query->the_post();
            $attachment_metadata = wp_get_attachment_metadata( get_the_ID() );
            foreach( $attachment_metadata['sizes'] as $key => $value ){
                cloudfront_fix( get_the_ID(), $key );
            }
        }
        wp_reset_postdata();
    }
}
add_action('init', 'fix_all_image_metadata');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant