在WordPress中优化和删除图像

时间:2017-04-21 作者:JZK

我已经上传了一些图片到我的博客帖子中。我不在乎它们的大小,所以我甚至放了5mb的图像,可以轻松压缩到200kb。我知道wordpress已经对它们进行了处理、裁剪和定制,但现在我很担心,因为我的整个博客都很大。

我想删除原件或至少用压缩副本替换它们。

我可以用相同的名字手动下载、删除、压缩和上传吗?

有没有什么简单的插件可以为我做同样的事情?

非常感谢。

3 个回复
SO网友:Punitkumar Patel

您可以使用Regenerate Thumbnails Plugin

要重新生成所有图像,您应该使用以下方法在主题中创建所需的大小:

function custom_thumbs() {
    add_image_size( \'cover-size\', 1600, 450, true ); 
}
add_action( \'after_setup_theme\', \'custom_thumbs\' );
您可以通过以下方式使用优化图像:

$attachment_id = get_post_thumbnail_id( $post->ID ); 
$img_src = wp_get_attachment_image_url( $attachment_id, \'cover-size\' ); 
$img_srcset = wp_get_attachment_image_srcset( $attachment_id, \'cover-size\' );
上述功能可帮助您在浏览器中快速加载页面,而不会加载原始图像。

SO网友:Eli

您好“EWWW Image Optimizer“插件将完成这项工作。

SO网友:Oleg Butuzov

好问题,我有机会写一个小包装,基本上实现了这样的功能。。。

我在考虑什么时候应该运行我的优化,以及应该如何处理文件。最后得出下一个结论<稍后将使用wp\\u cron schedule更改主映像。没什么特别有趣的。。。你带着你的文件,在优化管道中运行它Success 将param设置为在post meta中不再对其进行优化,以防fail 将其标记为Failed 忘记图像吧wp_update_attachment_metadata 在触发更新元数据时过滤$hook以获取文件列表(例如在生成图像大小时)```

add_filter( \'wp_update_attachment_metadata\', 
    array( __CLASS__, \'optimize_images_in_foreach\' ), 100, 2 );

Files Optimization.
/**
 * Optimize Copies of imges in loop while images regeneration
 *
 * @param  array  $metadata      Image Metadata (images, exif data, etc...)
 * @param  int    $attachment_id Attachment id
 * @return array
 */
function optimize_images_in_foreach( $metadata, $attachment_id ) {
    $original_file = get_attached_file( $attachment_id );
    if ( ! empty( $metadata[\'sizes\'] ) && is_array( $metadata[\'sizes\'] ) ) {
       foreach( $metadata[\'sizes\'] as $size => $item )
          do_action( \'optimize_image\', 
            str_replace( basename( $original_file ), $item[\'file\'], $original_file ) );
        }
    }    
    return $metadata;
}
```

正如您所见,我刚刚运行了自己的图像操作。。。optimize_image. 在第一阶段,它只是pngoutjpegtran, 后来,使用高级cron时间表和Kraken服务(图像优化)实现起来有点困难```

/**
 * Run Image Optimization to Jpeg\'s and PNG\'s

 * @param  string $image IMage Location in filesystem
 * @return void
 */
function optimize_images_in_foreach_jpeg_png_optimization( $image ) {
    $extension = array_pop(explode( \'.\', basename( $image ) ) );

    // `images_optimization` is global option that holds a cli command for image optimization
    //  examples...
    // \'png\'  => /opt/local/bin/optipng = \'{$image}\', 
    // \'jpeg\' => /opt/local/bin/jpegtran -copy none -maxmemory 256Mb  -optimize \\
    //                                          -outfile \'{$image}\' \'{$image}\'

    $optimization = get_site_option(\'images_optimization\');

    if ( in_array($extension, array( \'jpeg\', \'jpg\' ) ) ) {
        $type = \'jpeg\';
    } elseif ( in_array( $extension, array( \'png\' ) ) ) {
        $type = \'png\';
    } else {
        $type = \'default\';
    }

    if ( ! empty( $optimization[ $type ] ) ) {
        $optimization[$type] = str_replace( \'{$image}\', $image, $optimization[ $type ] ); 
        // execute is a pipline to exec in this itteration.
        execute( "{$optimization[$type]}" );
    }   
}
```

P、 请原谅我的代码格式。。。没有“```”它就无法工作

相关推荐

https images not displaying

Setup嗨,伙计们!我有个奇怪的问题。我正在使用安装了ssl证书的wordpress Premium BeTheme。Problem问题是,虽然图像是用https上传到网站上的,但它们没有显示出来。如果我手动将图像的URL从https切换到http,它们就会开始显示。What I have done?我尝试过在internet上卸载ssl证书和几乎所有的解决方案,但都没有解决。Here is the URL of the website : https://uptimeelite.com/