You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中从缩放版图片复原原始图片?

解决方案:用现有缩放版替代丢失的WordPress原始图片

完全可以用你手头的高分辨率缩放版(1280x720/1200x900)作为新的原始文件,让WordPress插件能基于它重新生成所需尺寸。以下是实现你需求的PHP脚本(适配WordPress环境):

脚本核心功能

  • 遍历所有媒体附件
  • 自动检查原始图片文件是否存在
  • 若原始文件丢失,复制指定尺寸的缩放版作为新的原始文件
  • 重命名并更新WordPress附件元数据,确保系统识别新的原始文件

具体代码

<?php
// 加载WordPress环境(单独运行脚本时需添加此行)
require_once('wp-load.php');

// 获取所有图片类媒体附件
$attachments = get_posts([
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'posts_per_page' => -1,
    'post_status' => 'inherit'
]);

// 逐个处理附件
foreach ($attachments as $attachment) {
    $meta = wp_get_attachment_metadata($attachment->ID);
    if (!$meta) continue;

    $upload_dir = wp_get_upload_dir();
    $original_file = $upload_dir['basedir'] . '/' . $meta['file'];
    
    // 检查原始文件是否存在
    if (file_exists($original_file)) {
        echo "附件ID {$attachment->ID}:原始文件存在,跳过<br>";
        continue;
    }

    // 定位1200x900尺寸的缩放版文件
    $target_thumbnail = '';
    foreach ($meta['sizes'] as $size_data) {
        if ($size_data['width'] == 1200 && $size_data['height'] == 900) {
            $target_thumbnail = pathinfo($meta['file'], PATHINFO_DIRNAME) . '/' . $size_data['file'];
            break;
        }
    }

    if (!$target_thumbnail) {
        echo "附件ID {$attachment->ID}:未找到1200x900缩放版,跳过<br>";
        continue;
    }

    $thumbnail_path = $upload_dir['basedir'] . '/' . $target_thumbnail;
    if (!file_exists($thumbnail_path)) {
        echo "附件ID {$attachment->ID}:1200x900缩放版文件不存在,跳过<br>";
        continue;
    }

    // 复制缩放版作为新的原始文件
    if (copy($thumbnail_path, $original_file)) {
        // 更新元数据,匹配新原始文件的尺寸
        $updated_meta = $meta;
        $updated_meta['width'] = 1200;
        $updated_meta['height'] = 900;
        update_post_meta($attachment->ID, '_wp_attachment_metadata', $updated_meta);
        
        echo "附件ID {$attachment->ID}:已用1200x900缩放版重建原始文件<br>";
    } else {
        echo "附件ID {$attachment->ID}:文件复制失败,跳过<br>";
    }
}

echo "批量处理完成";
?>

使用注意事项

  1. 备份优先:运行前务必备份所有图片文件和WordPress数据库,避免数据丢失。
  2. 路径适配:如果你的缩略图命名规则非默认(比如自定义后缀),需调整脚本中定位1200x900版本的逻辑。
  3. 测试先行:先针对单个附件测试脚本,确认功能正常后再批量处理所有附件。
  4. 再生尺寸:脚本运行完成后,可使用Regenerate Thumbnails等插件重新生成所需的图片尺寸。

内容的提问来源于stack exchange,提问作者pukos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:52:31