阻止WordPress裁剪GIF文件

时间:2014-09-24 作者:Robert hue

有没有办法防止WordPress根据文件扩展名裁剪文件。实际上,我想禁用对GIF文件的裁剪,因为在裁剪GIF图像后。。。

GiF图像不会保持动画,即使它保持动画,我也不会使用那些小尺寸的GiF那么有没有办法根据图像的文件扩展名禁用缩略图生成(对于GIF)。

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

通常可以通过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;
}

结束

相关推荐

Add_image_size not cropping

我想在我的博客页面上裁剪超过443px的图片,精确地将其调整为645x443大小。我使用了以下代码:add_theme_support (\'post-thumbnails\'); add_image_size (\'blog-page\', 645, 445, true); 但是,将调整图像的大小,而不是进行裁剪。示例:原始图像:http://img843.imageshack.us/img843/6444/56004879.jpg如何操作:http://imageshack.us/s