i'm looking for a more discrete and automatic approach. And that is altering the wp_create_thumbnail i think.
And that is where you'd be wrong. Here is the entire code for wp_create_thumbnail() from core:
function wp_create_thumbnail( $file, $max_side, $deprecated = '' ) {
if ( !empty( $deprecated ) )
_deprecated_argument( __FUNCTION__, '1.2' );
$thumbpath = image_resize( $file, $max_side, $max_side );
return apply_filters( 'wp_create_thumbnail', $thumbpath );
}
This function, on its own, doesn't do much. Instead, if you need to change anything, it would be image_resize() ... but changing the core function is still the wrong way to do this.
Why Not Change Core
Changing a core file is usually frowned upon by mainstream developers. If you change core and don't resubmit your changes to the project, you're left with a forked version of WordPress - the next time an update is released, you'll have to re-edit core files after you update to maintain your new functionality.
In many cases, the changes you want to make to core only apply to a handful of people - typically just you. Unless the changes will benefit a majority of WP users, any core changes outside the scope of the current development cycle will usually be tabled for later or left in Trac with a "wontfix" resolution.
What works for just you or just me doesn't belong in the core project - it belongs in a plugin.
The Right Way
The right way to change things up is to create your own version of image_resize() in a plugin. Then build your own my_create_thumbnail() function that fits the following:
function my_create_thumbnail( $file, $max_side ) {
return apply_filters( 'wp_create_thumbnail', my_image_resize( $file, $max_side, $max_side ) );
}
This function has the same signature as wp_create_thumbnail() and fires the same filters, so it can be used as a one-to-one replacement of the original function in all of your other plugin and theme scripts.
wp_create_thumbnail()hasimage_save_preas its first filter, so it should already work. – kaiser Jul 17 '12 at 18:21wp_create_thumbnail()is. Currently code is hooking directly...wp_create_thumbnail()is just there to determine, if hooking is needed... – kaiser Jul 18 '12 at 0:19