/** * Smush attachments (e.g. gallery images that were just uploaded) */ function gd_quicksetup_setup_wp_smushit() { $attachments = get_posts(array('numberposts' => -1, 'post_type' => 'attachment', 'post_mime_type' => 'image')); foreach ($attachments as $attachment) { $original_meta = wp_get_attachment_metadata($attachment->ID, true); $meta = wp_smushit_resize_from_meta_data($original_meta, $attachment->ID, false); wp_update_attachment_metadata($attachment->ID, $meta); usleep(500000); // 500ms } }
/** * Manually process an image from the Media Library */ function wp_smushit_manual() { if (FALSE === current_user_can('upload_files')) { wp_die(__('You don\'t have permission to work with uploaded files.', WP_SMUSHIT_DOMAIN)); } if (FALSE === isset($_GET['attachment_ID'])) { wp_die(__('No attachment ID was provided.', WP_SMUSHIT_DOMAIN)); } $attachment_ID = intval($_GET['attachment_ID']); $original_meta = wp_get_attachment_metadata($attachment_ID); $new_meta = wp_smushit_resize_from_meta_data($original_meta, $attachment_ID); wp_update_attachment_metadata($attachment_ID, $new_meta); $sendback = wp_get_referer(); $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); wp_redirect($sendback); exit(0); }
?> <button type="submit" class="button-secondary action">Run all my images through WP Smush.it right now</button> </form> <?php } else { // run the script if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'wp-smushit-bulk') || !current_user_can('edit_others_posts')) { wp_die(__('Cheatin’ uh?')); } ob_implicit_flush(true); ob_end_flush(); foreach ($attachments as $attachment) { printf("<p>Processing <strong>%s</strong>…<br>", esc_html($attachment->post_name)); $original_meta = wp_get_attachment_metadata($attachment->ID, true); $meta = wp_smushit_resize_from_meta_data($original_meta, $attachment->ID, false); printf("– %dx%d: ", intval($meta['width']), intval($meta['height'])); if ($original_meta['wp_smushit'] == $meta['wp_smushit'] && stripos($meta['wp_smushit'], 'Smush.it error') === false) { echo 'already smushed' . $meta['wp_smushit']; } else { echo $meta['wp_smushit']; } echo '<br>'; if (isset($meta['sizes']) && is_array($meta['sizes'])) { foreach ($meta['sizes'] as $size_name => $size) { printf("– %dx%d: ", intval($size['width']), intval($size['height'])); if ($original_meta['sizes'][$size_name]['wp_smushit'] == $size['wp_smushit'] && stripos($meta['sizes'][$size_name]['wp_smushit'], 'Smush.it error') === false) { echo 'already smushed'; } else { echo $size['wp_smushit']; }