本文提供一种无需编程基础、安全可靠的 WordPress 原生方案:通过轻量插件自动扫描 wp-content/uploads 目录,生成含完整文件路径(或 URL)的 TXT/CSV 文本文件,便于 Excel 批量导入商品图链。全程基于 WordPress 内置函数,不依赖外部脚本或登录模拟。
本文提供一种无需编程基础、安全可靠的 wordpress 原生方案:通过轻量插件自动扫描 `wp-content/uploads` 目录,生成含完整文件路径(或 url)的 txt/csv 文本文件,便于 excel 批量导入商品图链。全程基于 wordpress 内置函数,不依赖外部脚本或登录模拟。
在电商类 WordPress 网站(如 WooCommerce)中,为数百甚至上千个商品批量上传图片并关联路径,是常见但繁琐的任务。手动整理 wp-content/uploads 下的图片路径不仅耗时易错,且 FTP 或主机后台直接浏览难以导出结构化数据。本文介绍一个零依赖、免写代码、开箱即用的专业级解决方案——通过定制化 WordPress 插件,全自动创建标准化文件清单。
✅ 核心优势:原生、安全、智能更新
该方案完全基于 WordPress 官方函数 list_files()(位于 wp-admin/includes/file.php),确保兼容性与安全性。它仅在 WordPress 后台初始化(admin_init 钩子)时触发,不暴露于前台、不开放远程访问、不需用户名密码登录,彻底规避 Python 模拟登录失败、权限不足、CSRF 阻断等常见问题。
更重要的是,插件具备智能缓存机制:仅当上传目录内容变更(如新增/删除图片)或插件自身被修改时,才重新生成清单文件;否则跳过写入,避免无谓 I/O 和覆盖风险。
? 快速部署三步走
-
复制并配置代码
将下方精简版插件代码保存为 file-list-creator.php(注意:UTF-8 无 BOM 编码):
<?php
/**
* Plugin Name: WP 图片路径清单生成器
* Description: 自动扫描 uploads 目录,生成图片路径/URL 清单(TXT/CSV)
* Version: 1.0
*/
if (!defined('ABSPATH')) exit;
// ⚙️ 【请按需修改此处设置】
$settings = [
'folder' => wp_get_upload_dir()['basedir'], // 默认扫描 uploads 根目录
'file_name' => 'image-paths', // 输出文件名(不含扩展名)
'extensions' => ['jpg','jpeg','png','gif','webp','avif','svg'], // 仅包含这些格式
'file_type' => 'txt', // 可选 'txt' 或 'csv'
'list_type' => 'paths', // 可选 'paths' / 'urls' / 'both'
'location' => 'uploads', // 保存位置:'uploads' 或 'root'(网站根目录)
'separator' => "\t", // TXT 文件分隔符(制表符更易粘贴到 Excel)
];
// ✅ 无需修改下方逻辑 —— 自动执行
add_action('admin_init', function() use ($settings) {
if (!is_admin() || wp_doing_ajax() || !current_user_can('manage_options')) return;
$target_dir = $settings['folder'];
if (!is_dir($target_dir)) return;
$output_file = ($settings['location'] === 'root' ? ABSPATH : wp_get_upload_dir()['basedir'] . '/')
. $settings['file_name'] . '.' . $settings['file_type'];
// 智能判断是否需要更新:仅当 uploads 目录或插件文件更新后才重写
$needs_update = !file_exists($output_file)
|| filemtime($target_dir) > filemtime($output_file)
|| filemtime(__FILE__) > filemtime($output_file);
if (!$needs_update) return;
$files = list_files($target_dir, 3, []); // 深度3:兼容年/月子目录结构
if (empty($files) || !is_array($files)) return;
$filtered = array_filter($files, function($f) use ($settings) {
return is_file($f) && in_array(strtolower(pathinfo($f, PATHINFO_EXTENSION)), $settings['extensions']);
});
if (empty($filtered)) return;
if ($settings['file_type'] === 'csv') {
$fp = fopen($output_file, 'w');
fputcsv($fp, [$settings['list_type'] === 'both' ? 'PATH' : 'PATH']); // 简化列头
foreach ($filtered as $f) {
$row = $settings['list_type'] === 'both'
? [$f, str_replace(ABSPATH, site_url() . '/', $f)]
: [$f];
fputcsv($fp, $row, ';');
}
fclose($fp);
} else {
$content = implode("\n", array_map(function($f) use ($settings) {
return $settings['list_type'] === 'both'
? $f . $settings['separator'] . str_replace(ABSPATH, site_url() . '/', $f)
: $f;
}, $filtered));
file_put_contents($output_file, $content . "\n", LOCK_EX);
}
chmod($output_file, 0644); // 设为可读写(非私有)
});-
安装插件
- 进入 WordPress 后台 →「插件」→「安装插件」→「上传插件」→ 选择刚保存的 file-list-creator.php
- 点击「安装现在」→「启用插件」
? 提示:启用后无需任何操作,插件将在下次进入后台时自动运行并生成文件。
-
获取清单文件
- 文件默认保存在 wp-content/uploads/image-paths.txt(或 .csv)
- 通过 FTP、主机文件管理器或 WordPress 插件(如 WP File Manager)下载该文件
- 在 Excel 中:「数据」→「从文本/CSV」导入 → 选择对应分隔符(TXT 用制表符 \t,CSV 用分号 ;)→ 完成!
⚠️ 关键注意事项
- 路径深度适配:若你的站点启用了「按年月组织上传文件」(WordPress 默认),请保持 list_files() 的 levels 参数 ≥ 3;若已关闭此功能,可设为 1 提升性能。
- 安全建议:生成的文件默认权限为 0644(公开可读)。如需禁止直接浏览器访问(例如防止爬虫抓取),将代码中 chmod($output_file, 0644) 改为 chmod($output_file, 0600)。
- 扩展性说明:本方案支持 CSV 格式(带表头)、多列输出(路径+URL)、自定义分隔符,完美适配 Excel VBA 批量处理需求。
- 故障排查:若未生成文件,请检查 PHP 错误日志;确认 wp-content/uploads 目录可写;临时禁用其他插件排除冲突。
? 总结
与其尝试不可靠的 Python 登录模拟或手动遍历服务器目录,不如采用 WordPress 原生、钩子驱动、权限可控的自动化方案。该插件体积小(


















