WordPressがファイル拡張子に基づいてファイルをトリミングするのを防ぐ方法はありますか。 GIF画像のトリミング後、GIFファイルのトリミングを無効にしたいのですが….
そのため、画像のファイル拡張子に基づいてサムネイルの生成を無効にする方法があります(GIFの場合)。
サイズを設定解除することは通常intermediate_image_sizes_advanced
フックを通して簡単にされることができます。唯一の問題は、利用可能な$sizes
配列しかないため、一般的なレベルではこれで十分ですが、これを条件付きで実行したい場合には不十分です。条件付きでそれを行うのに必要な情報はdebug_backtrace
で集めることができます - debug_backtrace
はパフォーマンス的にはやや高価です。とにかく、私はそれが以下に示されるようにされることができると想像します:
add_action(
'intermediate_image_sizes_advanced',
'wpse162413_unset_sizes_if_gif'
);
function wpse162413_unset_sizes_if_gif( $sizes ) {
// we're only having the sizes available
// we're using debug_backtrace to get additional information
$dbg_back = debug_backtrace();
// scan $dbg_back array for function and get $args
foreach ( $dbg_back as $sub ) {
if ( $sub[ 'function'] == 'wp_generate_attachment_metadata' ) {
$args = $sub[ 'args' ];
}
}
// attachment id
$att_id = $args[0];
// attachment path
$att_path = $args[1];
// split up file information
$pathinfo = pathinfo( $att_path );
// if extension is gif unset sizes
if ( $pathinfo[ 'extension' ] == 'gif' ) {
// get all intermediate sizes
$intermediate_image_sizes = get_intermediate_image_sizes();
// loop trough the intermediate sizes array
foreach ( $intermediate_image_sizes as $size ) {
// unset the size in the sizes array
unset( $sizes[ $size ] );
}
}
// return sizes
return $sizes;
}