Let's Shape The Future Of Your Investments!
Natoque iaculis cursus augue urna commodo aptent morbi tortor porttitor quis ornare.
在 WordPress 开发或内容迁移过程中,我们常常需要:
默认后台上传无法实现这些高级需求,但借助 FTP + WP CLI + functions.php 定制代码,可以完美实现。
/wp-content/uploads/2023/03/
工具 | 用途 | 是否必须 |
---|---|---|
FTP / 文件管理器 | 上传图片到服务器 | ✅ |
WP-CLI | 命令行导入媒体 | ✅ |
functions.php | 注入上传目录与时间控制逻辑 | ✅ |
通过 FTP 或主机自带文件管理器:
/wp-content/uploads/2023/03/
注意文件命名统一格式(如 001.jpg、002.jpg),便于后续排序。
functions.php
中加入控制代码在你的主题(如 wp-content/themes/your-theme/functions.php
)中加入以下代码:
// 1. 固定上传目录为 /2023/03
add_filter('upload_dir', function ($uploads) {
$custom_subdir = '/2023/03'; // ← 可自定义为你需要的目录
$uploads['subdir'] = $custom_subdir;
$uploads['path'] = $uploads['basedir'] . $custom_subdir;
$uploads['url'] = $uploads['baseurl'] . $custom_subdir;
return $uploads;
});
// 2. 设置上传时间从某日起,每张图增加 10 秒
add_filter('wp_insert_attachment_data', function ($data) {
static $i = 0;
$base_time = strtotime('2023-03-04 14:00:00'); // 起始时间
$custom_time = date('Y-m-d H:i:s', $base_time + ($i * 10)); // 每张图 +10秒
$data['post_date'] = $custom_time;
$data['post_date_gmt'] = get_gmt_from_date($custom_time);
$i++;
return $data;
});
📝 说明:
/2023/03
为任意目标年月2023-03-04 14:00:00
也可自定义登录你的服务器 SSH 后,进入 WordPress 安装目录:
cd /home/你的用户名/domains/你的域名/public_html
确认是否是正确目录:
ls -al | grep wp-config.php
能看到 wp-config.php
,说明你就在根目录 ✅
执行以下命令:
wp media import $(ls -1v wp-content/uploads/2023/03/*.{jpg,jpeg,png,gif,webp,svg}) --skip-copy
ls -1v
:按自然顺序列出文件名(001.jpg → 002.jpg → …)--skip-copy
:跳过复制操作,避免浪费磁盘空间wp media import
:通过 WP CLI 将文件注册到媒体库✅ 成功后你将在媒体库看到图片,上传时间按你设定的顺序排列,并显示“上传于 2023 年 3 月”。
WordPress 后台上传多个文件是并发异步,可能导致 $i++
紊乱;而 WP CLI 是串行执行,可以确保每张图的时间顺序与文件名一致。
后台上传多张图是同时发起多个异步请求,$i++
无法保证顺序。只能通过 WP CLI 保证顺序导入。
媒体库的“网格视图”默认最多只加载前 80 张,可以切换到“列表视图”查看更多,或者使用媒体分页插件。
只需修改 2 个地方:
$custom_subdir = '/2024/08';
$base_time = strtotime('2024-08-01 10:00:00');
/wp-content/uploads/2024/08/
然后执行导入命令:
wp media import $(ls -1v wp-content/uploads/2024/08/*.{jpg,jpeg,png,gif,webp,svg}) --skip-copy
步骤 | 说明 |
---|---|
上传 | FTP 将图片上传到目标年月的文件夹 |
控制 | 在 functions.php 中设置上传目录和上传时间规则 |
导入 | 用 WP CLI + --skip-copy 将图片写入数据库 |
效果 | 图片显示为指定年月,排序整齐,避免乱序 |