PluginProbe
Plus WebP or AVIF / 4.11
Plus WebP or AVIF v4.11
5.21 5.20 5.12 5.11 trunk 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 2.00 2.01 2.02 2.03 2.04 2.05 All 47 releases
← All changes | lib/class-pluswebp.php +251 -98 1.094.11 View file →
@@ -57,11 +57,19 @@
57 57 public function __construct() {
58 58
59 59 list( $this->upload_dir, $this->upload_url, $this->upload_path ) = $this->upload_dir_url_path();
60 60
61 + /* Generate metadata */
61 62 add_filter( 'wp_generate_attachment_metadata', array( $this, 'generate_webp' ), 10, 2 );
62 - add_action( 'pluswebp_mail_send', array( $this, 'mail_send' ), 10, 1 );
63 + /* Original hook */
64 + add_filter( 'pluswebp_get_allimages', array( $this, 'get_allimages' ), 10, 1 );
65 + add_filter( 'pluswebp_mail_messages', array( $this, 'mail_messages' ), 10, 2 );
66 + add_action( 'pluswebp_mail_generate_message', array( $this, 'mail_generate_message' ), 10, 2 );
63 67
68 + /* Raise memory */
69 + add_filter( 'pluswebp_memory_limit', array( $this, 'raise_memory_limit' ) );
70 + /* webp generation control */
71 + add_filter( 'wp_upload_image_mime_transforms', array( $this, 'control_mime_type' ), 10, 2 );
64 72 }
65 73
66 74 /** ==================================================
67 75 * Webp generate
@@ -78,27 +86,49 @@
78 86
79 87 $mime_type = get_post_mime_type( $attachment_id );
80 88 if ( in_array( $mime_type, $pluswebp_settings['types'] ) ) {
81 89 $metadata_webp = $metadata;
82 - $file_webp = $this->change_ext( $metadata['file'], 'webp' );
90 + $file_webp = $this->change_ext( $metadata['file'], 'webp', $pluswebp_settings['addext'] );
83 91 $metadata_webp['file'] = $file_webp;
92 + if ( '.' === dirname( $file_webp ) ) {
93 + $dir_name_url = '/';
94 + $dir_name_path = wp_normalize_path( '/' );
95 + } else {
96 + $dir_name_url = '/' . dirname( $file_webp ) . '/';
97 + $dir_name_path = wp_normalize_path( $dir_name_url );
98 + }
99 + $url = $this->upload_url . $dir_name_url;
100 + $path = $this->upload_dir . $dir_name_path;
101 +
84 102 foreach ( (array) $metadata['sizes'] as $key => $value ) {
85 103 $file_thumb = $value['file'];
86 - $file_thumb_webp = $this->change_ext( $file_thumb, 'webp' );
87 - $path = $this->upload_dir . '/' . dirname( $file_webp ) . '/';
88 - $url = $this->upload_url . '/' . dirname( $file_webp ) . '/';
89 - $ret = $this->create_webp( $path . $file_thumb, $mime_type, $path . $file_thumb_webp );
104 + $file_thumb_webp = $this->change_ext( $file_thumb, 'webp', $pluswebp_settings['addext'] );
105 + $ret = $this->create_webp( $path . $file_thumb, $mime_type, $path . $file_thumb_webp );
90 106 if ( $ret ) {
91 107 $metadata_webp['sizes'][ $key ]['file'] = $file_thumb_webp;
92 108 $metadata_webp['sizes'][ $key ]['mime-type'] = 'image/webp';
109 + $webp_size = filesize( $path . wp_basename( $file_thumb_webp ) );
110 + $metadata_webp['sizes'][ $key ]['filesize'] = $webp_size;
93 111 if ( $replace ) {
94 - unlink( $path . $file_thumb );
112 + wp_delete_file( $path . $file_thumb );
95 113 $this->change_db( $url . $file_thumb, $url . $file_thumb_webp );
96 114 }
97 115 }
98 116 }
99 117
100 - $ret = $this->create_webp( $this->upload_dir . '/' . $metadata['file'], $mime_type, $this->upload_dir . '/' . $file_webp );
118 + $org_img_file = null;
119 + if ( array_key_exists( 'original_image', $metadata ) && ! empty( $metadata['original_image'] ) ) {
120 + $org_img_file = wp_normalize_path( wp_get_original_image_path( $attachment_id, false ) );
121 + $org_webp_file = $this->change_ext( $org_img_file, 'webp', $pluswebp_settings['addext'] );
122 + $ret = $this->create_webp( $org_img_file, $mime_type, $org_webp_file );
123 + if ( $ret ) {
124 + $metadata_webp['original_image'] = wp_basename( $org_webp_file );
125 + }
126 + }
127 +
128 + $ret = $this->create_webp( $this->upload_dir . '/' . $metadata['file'], $mime_type, $path . wp_basename( $file_webp ) );
129 + $webp_size = filesize( $path . wp_basename( $file_webp ) );
130 + $metadata_webp['filesize'] = $webp_size;
101 131 if ( $ret ) {
102 132 if ( $replace ) {
103 133 $up_post = array(
104 134 'ID' => $attachment_id,
@@ -109,9 +139,12 @@
109 139 update_post_meta( $attachment_id, '_wp_attached_file', $file_webp );
110 140 /* for bulk generate */
111 141 update_post_meta( $attachment_id, '_wp_attachment_metadata', $metadata_webp );
112 142 /* delete org file */
113 - unlink( $this->upload_dir . '/' . $metadata['file'] );
143 + wp_delete_file( $this->upload_dir . '/' . $metadata['file'] );
144 + if ( $org_img_file ) {
145 + wp_delete_file( $org_img_file );
146 + }
114 147 /* Replace */
115 148 $this->change_db( $this->upload_url . '/' . $metadata['file'], $this->upload_url . '/' . $file_webp );
116 149 /* for hook */
117 150 $metadata = $metadata_webp;
@@ -118,9 +151,9 @@
118 151 /* for mail */
119 152 $attach_id = $attachment_id;
120 153 } else {
121 154 $post = get_post( $attachment_id );
122 - $title = get_the_title( $post );
155 + $title = $post->post_title;
123 156 $attachment = array(
124 157 'guid' => $this->upload_url . '/' . $file_webp,
125 158 'post_mime_type' => 'image/webp',
126 159 'post_title' => $title,
@@ -126,9 +159,15 @@
126 159 'post_title' => $title,
127 160 'post_content' => '',
128 161 'post_status' => 'inherit',
129 162 );
130 - $attach_id = wp_insert_attachment( $attachment, $this->upload_dir . '/' . $file_webp );
163 + $file = $this->upload_dir . '/' . $file_webp;
164 + $attach_id = wp_insert_attachment( $attachment, $file );
165 +
166 + /* for XAMPP [ get_attached_file( $attach_id ): Unable to get correct value ] */
167 + $metapath_name = str_replace( $this->upload_dir . '/', '', $file );
168 + update_post_meta( $attach_id, '_wp_attached_file', $metapath_name );
169 +
131 170 wp_update_attachment_metadata( $attach_id, $metadata_webp );
132 171
133 172 $author = get_userdata( $post->post_author );
134 173 $userid = $author->ID;
@@ -144,120 +183,198 @@
144 183 );
145 184 wp_update_post( $up_post );
146 185 }
147 186
148 - $ids = get_option( 'pluswebp_generate' );
149 - $ids[] = $attach_id;
150 - update_option( 'pluswebp_generate', $ids );
187 + update_option( 'pluswebp_generate', $attach_id );
151 188
189 + /* for Media Library folders term by Organize Media Folder */
190 + do_action( 'omf_folders_term_update', $metadata_webp, $attach_id );
191 +
192 + /* for Term filter update by Organize Media Folder */
193 + do_action( 'omf_term_filter_update' );
194 +
152 195 }
153 196 }
154 197
155 198 return $metadata;
199 + }
156 200
201 + /** ==================================================
202 + * Thumbnail urls
203 + *
204 + * @param int $attach_id attach_id.
205 + * @param array $metadata metadata.
206 + * @param string $upload_url upload_url.
207 + * @return array $image_thumbnail(string), $imagethumburls(array)
208 + * @since 2.00
209 + */
210 + private function thumbnail_urls( $attach_id, $metadata, $upload_url ) {
211 +
212 + $image_attr_thumbnail = wp_get_attachment_image_src( $attach_id, 'thumbnail', true );
213 + $image_thumbnail = $image_attr_thumbnail[0];
214 +
215 + $imagethumburls = array();
216 + if ( ! empty( $metadata ) && array_key_exists( 'sizes', $metadata ) ) {
217 + $thumbnails = $metadata['sizes'];
218 + $path_file = get_post_meta( $attach_id, '_wp_attached_file', true );
219 + $filename = wp_basename( $path_file );
220 + $media_path = str_replace( $filename, '', $path_file );
221 + $media_url = $upload_url . '/' . $media_path;
222 + foreach ( $thumbnails as $key => $key2 ) {
223 + $imagethumburls[ $key ] = $media_url . $key2['file'];
224 + }
225 + }
226 +
227 + return array( $image_thumbnail, $imagethumburls );
157 228 }
158 229
159 230 /** ==================================================
160 - * Mail send hook
231 + * Output datas
161 232 *
162 - * @param string $to to.
163 - * @since 1.09
233 + * @param int $attach_id attach_id.
234 + * @param array $metadata metadata.
235 + * @return array (string) $attachment_link, $attachment_url, $filename, $original_image_url, $original_filename, $mime_type(string), $stamptime, $file_size
236 + * @since 2.00
164 237 */
165 - public function mail_send( $to ) {
238 + private function output_datas( $attach_id, $metadata ) {
166 239
167 - $post_ids = get_option( 'pluswebp_generate' );
168 - delete_option( 'pluswebp_generate' );
240 + $attachment_link = get_attachment_link( $attach_id );
241 + $attachment_url = wp_get_attachment_url( $attach_id );
242 + $filename = wp_basename( $attachment_url );
243 + if ( ! empty( $metadata ) && array_key_exists( 'original_image', $metadata ) && ! empty( $metadata['original_image'] ) ) {
244 + $original_image_url = wp_get_original_image_url( $attach_id );
245 + $original_filename = wp_basename( $original_image_url );
246 + } else {
247 + $original_image_url = null;
248 + $original_filename = null;
249 + }
250 + $mime_type = get_post_mime_type( $attach_id );
169 251
170 - if ( function_exists( 'wp_date' ) ) {
171 - $now_date_time = wp_date( 'Y-m-d H:i:s' );
252 + $stamptime = get_the_time( 'Y-n-j ', $attach_id ) . get_the_time( 'G:i:s', $attach_id );
253 + if ( ! empty( $metadata ) && array_key_exists( 'filesize', $metadata ) && ! empty( $metadata['filesize'] ) ) {
254 + $file_size = $metadata['filesize'];
172 255 } else {
173 - $now_date_time = date_i18n( 'Y-m-d H:i:s' );
256 + $file_size = @filesize( get_attached_file( $attach_id ) );
174 257 }
175 - $pluswebp_mail_send = array();
176 - $pluswebp_mail_send['datetime'] = $now_date_time;
258 + if ( ! $file_size ) {
259 + $file_size = __( 'Could not retrieve.', 'plus-webp' );
260 + } else {
261 + $file_size = size_format( $file_size );
262 + }
177 263
178 - if ( ! empty( $post_ids ) ) {
264 + return array( $attachment_link, $attachment_url, $filename, $original_image_url, $original_filename, $mime_type, $stamptime, $file_size );
265 + }
179 266
180 - $message = __( 'Generation of WebP is complete.', 'plus-webp' ) . "\r\n\r\n";
181 - $pluswebp_mail_send['count'] = count( $post_ids );
267 + /** ==================================================
268 + * Get All Images
269 + *
270 + * @param array $types mime types.
271 + * @since 2.00
272 + */
273 + public function get_allimages( $types ) {
182 274
183 - $count = 0;
184 - foreach ( $post_ids as $attach_id ) {
185 - $filename = get_attached_file( $attach_id );
186 - $metadata = wp_get_attachment_metadata( $attach_id );
187 - /* OutputMetaData */
188 - list( $imagethumburls, $stamptime, $file_size ) = $this->output_metadata( $attach_id, $metadata, $this->upload_url );
189 - $count++;
190 - $message .= __( 'Count' ) . ': ' . $count . "\n";
191 - $message .= 'ID: ' . $attach_id . "\n";
192 - $message .= __( 'Title' ) . ': ' . $title . "\n";
193 - $message .= __( 'Permalink:' ) . ' ' . get_attachment_link( $attach_id ) . "\n";
194 - $message .= 'URL: ' . wp_get_attachment_url( $attach_id ) . "\n";
195 - $message .= __( 'File name:' ) . ' ' . wp_basename( wp_get_attachment_url( $attach_id ) ) . "\n";
196 - if ( ! empty( $metadata['original_image'] ) ) {
197 - $message .= __( 'Original URL:', 'plus-webp' ) . ' ' . wp_get_original_image_url( $attach_id ) . "\n";
198 - $message .= __( 'Original File name:', 'plus-webp' ) . ' ' . wp_basename( wp_get_original_image_url( $attach_id ) ) . "\n";
199 - }
200 - $message .= __( 'Date/Time' ) . ': ' . $stamptime . "\n";
201 - if ( ! $file_size ) {
202 - $file_size = __( 'Could not retrieve.', 'plus-webp' );
275 + $args = array(
276 + 'post_type' => 'attachment',
277 + 'post_status' => 'inherit',
278 + 'post_mime_type' => $types,
279 + 'posts_per_page' => -1,
280 + 'orderby' => 'date',
281 + 'order' => 'DESC',
282 + );
283 + $posts = get_posts( $args );
284 +
285 + global $wpdb;
286 + $webp_titles = $wpdb->get_col(
287 + "
288 + SELECT post_title
289 + FROM {$wpdb->prefix}posts
290 + WHERE post_type = 'attachment'
291 + AND post_mime_type IN ( 'image/webp' )
292 + AND post_status = 'inherit'
293 + "
294 + );
295 +
296 + $post_ids = array();
297 + $no_file_ids = array();
298 + $count = 0;
299 + foreach ( $posts as $post ) {
300 + if ( ! in_array( $post->post_title, $webp_titles ) ) {
301 + if ( file_exists( get_attached_file( $post->ID ) ) ) {
302 + $post_ids[] = $post->ID;
203 303 } else {
204 - $file_size = size_format( $file_size );
304 + $no_file_ids[] = $post->ID;
205 305 }
206 - $message .= __( 'File size:' ) . ' ' . $file_size . "\n";
207 - if ( ! empty( $imagethumburls ) ) {
208 - foreach ( $imagethumburls as $thumbsize => $imagethumburl ) {
209 - $message .= $thumbsize . ': ' . $imagethumburl . "\n";
210 - }
211 - }
212 - $message .= "\n";
213 306 }
214 - } else {
215 - $message = __( 'WebP was not generated. A file with the same name already exists.', 'plus-webp' ) . "\r\n\r\n";
216 - $pluswebp_mail_send['count'] = 0;
217 307 }
218 308
219 - update_option( 'pluswebp_generate_mail', $pluswebp_mail_send );
220 -
221 - /* translators: blogname for subject */
222 - $subject = sprintf( __( '[%s] WebP generate', 'plus-webp' ), get_option( 'blogname' ) );
223 - wp_mail( $to, $subject, $message );
224 -
309 + return array( $post_ids, $no_file_ids );
225 310 }
226 311
227 312 /** ==================================================
228 - * Output metadata
313 + * Mail messages hook
229 314 *
230 - * @param int $attach_id attach_id.
231 - * @param array $metadata metadata.
232 - * @param string $upload_url upload_url.
233 - * @return array $imagethumburls(string), $stamptime(string), $file_size(string)
234 - * @since 1.09
315 + * @param array $messages messages.
316 + * @param int $webp_id webp_id.
317 + *
318 + * @since 4.00
235 319 */
236 - private function output_metadata( $attach_id, $metadata, $upload_url ) {
320 + public function mail_messages( $messages, $webp_id ) {
237 321
238 - $imagethumburls = array();
239 - $wp_attached_file = get_post_meta( $attach_id, '_wp_attached_file', true );
240 - $imagethumburl_base = $upload_url . '/' . rtrim( $wp_attached_file, wp_basename( $wp_attached_file ) );
241 - if ( ! empty( $metadata ) ) {
242 - foreach ( $metadata as $key1 => $key2 ) {
243 - if ( 'sizes' === $key1 ) {
244 - foreach ( $metadata[ $key1 ] as $key2 => $key3 ) {
245 - $imagethumburls[ $key2 ] = $imagethumburl_base . $metadata['sizes'][ $key2 ]['file'];
246 - }
322 + $metadata = wp_get_attachment_metadata( $webp_id );
323 +
324 + $message = null;
325 + if ( $metadata ) {
326 + /* Thumbnail urls */
327 + list( $image_thumbnail, $imagethumburls ) = $this->thumbnail_urls( $webp_id, $metadata, $this->upload_url );
328 + /* Output datas*/
329 + list( $attachment_link, $attachment_url, $filename, $original_image_url, $original_filename, $mime_type, $stamptime, $file_size ) = $this->output_datas( $webp_id, $metadata );
330 +
331 + $message = 'ID: ' . $webp_id . "\n";
332 + $message .= __( 'Title' ) . ': ' . get_the_title( $webp_id ) . "\n";
333 + $message .= __( 'Permalink:' ) . ' ' . $attachment_link . "\n";
334 + $message .= 'URL: ' . $attachment_url . "\n";
335 + $message .= __( 'File name:' ) . ' ' . $filename . "\n";
336 + if ( ! empty( $original_image_url ) ) {
337 + $message .= __( 'Original URL:', 'plus-webp' ) . ' ' . $original_image_url . "\n";
338 + $message .= __( 'Original File name:', 'plus-webp' ) . ' ' . $original_filename . "\n";
339 + }
340 + $message .= __( 'Date/Time' ) . ': ' . $stamptime . "\n";
341 + $message .= __( 'File size:' ) . ' ' . $file_size . "\n";
342 + if ( ! empty( $imagethumburls ) ) {
343 + foreach ( $imagethumburls as $thumbsize => $imagethumburl ) {
344 + $message .= $thumbsize . ': ' . $imagethumburl . "\n";
247 345 }
248 346 }
347 + $message .= "\n";
348 + $messages[] = $message;
249 349 }
250 350
251 - $stamptime = get_the_time( 'Y-n-j ', $attach_id ) . get_the_time( 'G:i:s', $attach_id );
252 - if ( isset( $metadata['filesize'] ) ) {
253 - $file_size = $metadata['filesize'];
351 + return array( $message, $messages );
352 + }
353 +
354 + /** ==================================================
355 + * Mail sent for Generate Messages
356 + *
357 + * @param array $messages mail messages.
358 + * @param int $count convert count.
359 + * @since 4.02
360 + */
361 + public function mail_generate_message( $messages, $count ) {
362 +
363 + if ( function_exists( 'wp_date' ) ) {
364 + $now_date_time = wp_date( 'Y-m-d H:i:s' );
254 365 } else {
255 - $file_size = @filesize( get_attached_file( $attach_id ) );
366 + $now_date_time = date_i18n( 'Y-m-d H:i:s' );
256 367 }
368 + /* translators: Date and Time */
369 + $message_head = sprintf( __( 'Plus WebP : %s', 'plus-webp' ), $now_date_time ) . "\r\n\r\n";
370 + /* translators: Generated count */
371 + $message_head .= sprintf( __( 'Webp generated %d.', 'plus-webp' ), $count ) . "\r\n\r\n";
257 372
258 - return array( $imagethumburls, $stamptime, $file_size );
259 -
373 + $to = get_option( 'admin_email' );
374 + /* translators: blogname for subject */
375 + $subject = sprintf( __( '[%s] WebP generate', 'plus-webp' ), get_option( 'blogname' ) );
376 + wp_mail( $to, $subject, $message_head . implode( $messages ) );
260 377 }
261 378
262 379 /** ==================================================
263 380 * Webp create
@@ -278,8 +395,9 @@
278 395 }
279 396
280 397 $pluswebp_settings = get_option( 'pluswebp' );
281 398 @set_time_limit( 60 );
399 + wp_raise_memory_limit( 'pluswebp' );
282 400
283 401 $ret = false;
284 402 switch ( $mime_type ) {
285 403 case 'image/jpeg':
@@ -284,9 +402,10 @@
284 402 switch ( $mime_type ) {
285 403 case 'image/jpeg':
286 404 $src = imagecreatefromjpeg( $filename );
287 405 $img = imagecreatetruecolor( imagesx( $src ), imagesy( $src ) );
288 - imagefill( $img, 0, 0, imagecolorallocate( $img, 255, 255, 255 ) );
406 + $bgcolor = imagecolorallocate( $img, 255, 255, 255 );
407 + imagefill( $img, 0, 0, $bgcolor );
289 408 imagealphablending( $img, true );
290 409 break;
291 410 case 'image/png':
292 411 $src = imagecreatefrompng( $filename );
@@ -292,8 +411,11 @@
292 411 $src = imagecreatefrompng( $filename );
293 412 $img = imagecreatetruecolor( imagesx( $src ), imagesy( $src ) );
294 413 imagealphablending( $img, false );
295 414 imagesavealpha( $img, true );
415 + $bgcolor = imagecolorallocatealpha( $img, 0, 0, 0, 127 );
416 + imagefill( $img, 0, 0, $bgcolor );
417 + imagecolortransparent( $img, $bgcolor );
296 418 break;
297 419 case 'image/bmp':
298 420 $src = imagecreatefrombmp( $filename );
299 421 $img = imagecreatetruecolor( imagesx( $src ), imagesy( $src ) );
@@ -312,9 +434,8 @@
312 434 $ret = imagewebp( $img, $filename_webp, $pluswebp_settings['quality'] );
313 435 imagedestroy( $img );
314 436
315 437 return $ret;
316 -
317 438 }
318 439
319 440 /** ==================================================
320 441 * Change ext
@@ -320,20 +441,24 @@
320 441 * Change ext
321 442 *
322 443 * @param string $before_file_name before_file_name.
323 444 * @param string $ext ext.
445 + * @param bool $addext addext.
324 446 * @return array $after_file_name after_file_name.
325 447 * @since 1.00
326 448 */
327 - private function change_ext( $before_file_name, $ext ) {
449 + private function change_ext( $before_file_name, $ext, $addext ) {
328 450
329 - $exts = explode( '.', $before_file_name );
330 - $before_ext = '.' . end( $exts );
331 - $after_ext = '.' . $ext;
332 - $after_file_name = str_replace( $before_ext, $after_ext, $before_file_name );
451 + if ( $addext ) {
452 + $after_file_name = $before_file_name . '.' . $ext;
453 + } else {
454 + $exts = explode( '.', $before_file_name );
455 + $before_ext = '.' . end( $exts );
456 + $after_ext = '.' . $ext;
457 + $after_file_name = str_replace( $before_ext, $after_ext, $before_file_name );
458 + }
333 459
334 460 return $after_file_name;
335 -
336 461 }
337 462
338 463 /** ==================================================
339 464 * Change DB
@@ -348,14 +473,19 @@
348 473
349 474 /* Replace */
350 475 $wpdb->query(
351 476 $wpdb->prepare(
352 - "UPDATE `$wpdb->posts` SET post_content = replace(post_content, %s, %s)",
477 + "
478 + UPDATE {$wpdb->prefix}posts
479 + SET post_content = replace( post_content, %s, %s )
480 + ",
353 481 $before_url,
354 482 $after_url
355 483 )
356 484 );
357 485
486 + /* Advanced change database */
487 + list( $before_url, $after_url ) = apply_filters( 'plus_webp_advanced_change_db', $before_url, $after_url );
358 488 }
359 489
360 490 /** ==================================================
361 491 * Upload Path
@@ -392,9 +522,8 @@
392 522 $upload_url = untrailingslashit( $upload_url );
393 523 $upload_path = untrailingslashit( $upload_path );
394 524
395 525 return array( $upload_dir, $upload_url, $upload_path );
396 -
397 526 }
398 527
399 528 /** ==================================================
400 529 * Real Url
@@ -443,10 +572,34 @@
443 572 }
444 573 $path = implode( '/', $base_path );
445 574 return $parse['scheme'] . '://' . $parse['host'] . $path;
446 575 }
576 + }
447 577
578 + /** ==================================================
579 + * Filter Raise Memory limit
580 + *
581 + * @since 3.00
582 + *
583 + * @param string $filtered_limit Memory limit.
584 + */
585 + public function raise_memory_limit( $filtered_limit ) {
586 +
587 + return '256M';
448 588 }
449 589
450 -}
590 + /** ==================================================
591 + * Filter the output mime types for a given input mime type and image size.
592 + *
593 + * @since 3.00
594 + *
595 + * @param array $image_mime_transforms A map with the valid mime transforms where the key is the source file mime type
596 + * and the value is one or more mime file types to generate.
597 + * @param int $attachment_id The ID of the attachment where the hook was dispatched.
598 + */
599 + public function control_mime_type( $image_mime_transforms, $attachment_id ) {
451 600
601 + $image_mime_transforms = array();
452 602
603 + return $image_mime_transforms;
604 + }
605 +}