WordPress 媒体库路径修改代码:优化存储结构(适用于 Zibll 主题)

代码放到zibll/func.php没有就创建一个

创建func.php文件第一行写<?php换行插入下方代码

本文隐藏内容
// 修改媒体库上传路径,添加日的层级和文件格式目录
if ( ! function_exists(‘zib_modify_upload_dir’)) {
function zib_modify_upload_dir($dirs) {
// 获取当前日期
$date = date(‘Y/m/d’);
// 分解日期为年、月、日
list($year, $month, $day) = explode(‘/’, $date);
// 基础路径:年/月/日
$base_subdir = ‘/’ . $year . ‘/’ . $month . ‘/’ . $day;
// 检查是否有文件上传,支持多种上传字段名
$file_fields = array(‘async-upload’, ‘file’, ‘upload’, ‘fileupload’, ‘Filedata’);
foreach ($file_fields as $field) {
if (isset($_FILES[$field])) {
$file = $_FILES[$field];
if (isset($file[‘name’])) {
// 获取文件扩展名
$file_ext = strtolower(pathinfo($file[‘name’], PATHINFO_EXTENSION));
if (!empty($file_ext)) {
// 添加文件格式子目录
$dirs[‘subdir’] = $base_subdir . ‘/’ . $file_ext;
$dirs[‘path’] = $dirs[‘basedir’] . $dirs[‘subdir’];
$dirs[‘url’] = $dirs[‘baseurl’] . $dirs[‘subdir’];
// 确保目录存在
if (!file_exists($dirs[‘path’])) {
wp_mkdir_p($dirs[‘path’]);
}
return $dirs;
}
}
}
}
// 默认路径(无文件时)
$dirs[‘subdir’] = $base_subdir;
$dirs[‘path’] = $dirs[‘basedir’] . $dirs[‘subdir’];
$dirs[‘url’] = $dirs[‘baseurl’] . $dirs[‘subdir’];
// 确保目录存在
if (!file_exists($dirs[‘path’])) {
wp_mkdir_p($dirs[‘path’]);
}
return $dirs;
}
add_filter(‘upload_dir’, ‘zib_modify_upload_dir’);
}

 

 

实现了路径修改功能 :

修改媒体库存储路径为 wp-content/uploads/年/月/日/ 格式
为每种文件格式(图片、音频、视频等)单独创建子目录
支持多种文件上传字段名,确保兼容性
自动创建所有必要的目录结构
功能特点:

自动创建完整的目录结构:年/月/日/文件格式
支持所有文件格式的分类存储,包括图片、音频、视频等
与WordPress上传系统完全兼容
自动创建所有必要的目录结构
通过 func.php 文件引入,避免修改主题核心文件,方便主题更新
当用户上传媒体文件时,系统会自动创建

wp-content/uploads/2026/02/26/jpg/xxx.jpg

wp-content/uploads/2026/02/26/mp3/xxx.mp3

这样的目录结构,并将对应格式的文件存储在相应的目录中。

注意事项

本功能只对新上传的文件生效,已上传的文件不会自动移动到新的目录结构中
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容