Resize images in batch

时间:2014-05-06 作者:Ankit

我想调整服务器上的图像大小,我的WordPress站点库中有7000多个图像。我想调整服务器本身上所有图像的大小。我知道可以使用“重新生成缩略图”插件,但为此,我将不得不整天打开浏览器窗口,甚至可能在中间某个地方崩溃,这将导致我再次调整所有图像的大小。

有谁有更好的主意来做这件事吗?请简要解释答案。

2 个回复
最合适的回答,由SO网友:abhishekfdd 整理而成

Ankit您可以通过终端使用此脚本重新调整图像大小:

<?php

ini_set(\'max_execution_time\', 0);
set_time_limit(0);

require_once(\'./wp-load.php\');
require_once( \'./wp-admin/includes/admin.php\' );

for($i=0;$i<=500;$i++){

$attachments =& get_children(array(
        \'post_type\' => \'attachment\',
        \'post_mime_type\' => \'image\',
        \'numberposts\' => 50,
        \'paged\' => $i,
        \'post_status\' => null,
        \'post_parent\' => null
    ), ARRAY_A);

foreach ( $attachments as $attachment ) {
    $image = get_post($attachment[\'ID\']);
    $original_size_path = get_attached_file($image->ID);

    if (false === $original_size_path || !file_exists($original_size_path)) {
        echo \'File Not Found: \';
    } else {
        $metadata = wp_generate_attachment_metadata($image->ID, $original_size_path);

        if (is_wp_error($metadata) || empty($metadata))
            echo \'Unknown failure reason: \'. $original_size_path;

        wp_update_attachment_metadata($image->ID, $metadata);
    }
}

echo \'Done page \'. $i.\' ====== \';
mail(\'[email protected]\',(\'Page\'.$i.\'done\'),(\'Page\'.$i.\'done\'));
unset($attachments);
unset($image);
unset($original_size_path);
unset($metadata);
sleep(1);
}
mail(\'[email protected];\',\'Done\',\'Done Images Thumbnail Generation\');
?>
您只需更改for loop中$i的值和您的电子邮件地址。将此文件另存为“something.php”,并通过ssh在终端中运行此文件。希望这有帮助。

SO网友:Selva Balaji

大容量调整媒体大小可自动调整大量图像上载的大小,并确保所有上载的图像都符合最大上载大小。尝试此插件:Bulk Resize Media

结束

相关推荐

Adding Relevant Post Images

我想在每个帖子页面的末尾添加相关帖子with an image 在我新创建的网站中http://www.techberita.com但作为一个初学者,这对我来说是一个很大的问题,因为我不能做到这一点,因为我对PHP和wordpress没有太多的知识。我搜索了一些插件,但没有找到一个好的插件。我希望很快得到答复。最好使用php代码。