在使用Dedecms(织梦CMS)时,很多用户希望实现图片按月存放的功能。这不仅有助于更好地管理文件,还能提升网站的SEO效果。本文将详细介绍如何通过修改代码来实现这一功能。
// 获得下载媒体的随机名称
function GetRndName($url, $v) {
global $cfg_image_dir, $cfg_dir_purview;
$this->mediaCount++;
$mnum = $this->mediaCount;
$timedir = "c" . MyDate("ym", time()); // 修改此处,去掉原有的d即可按月存放
// 存放路径
$fullurl = preg_replace("//{1,}/", "/", $cfg_image_dir . "/");
if (!is_dir($GLOBALS['cfg_basedir'] . "/" . $fullurl)) {
MkdirAll($GLOBALS['cfg_basedir'] . "/" . $fullurl, $cfg_dir_purview);
}
$fullurl = $fullurl . $timedir . "/";
if (!is_dir($GLOBALS['cfg_basedir'] . "/" . $fullurl)) {
MkdirAll($GLOBALS['cfg_basedir'] . "/" . $fullurl, $cfg_dir_purview);
}
}
要实现图片按月存放,首先需要打开Dedecms的include/dedecollection.class.php文件。找到GetRndName函数,并按照上述代码进行修改。
接下来,我们还需要对后台及远程下载的存放方法进行调整:
1. 打开后台目录(默认为dede),找到media_add.php文件。定位到如下代码:
原代码: $dpath = MyDate("ymd", $uptime);
修改为: $dpath = MyDate("ym", $uptime);
完成此步后,后台上传的文件将会按月份自动分类存储。
2. 对于远程图片的本地化存储,我们需要进一步修改dede/inc/inc_archives_functios.php文件。找到以下代码:
原代码: $imgUrl = $cfg_uploaddir.'’/.MyDate("ymd",time());
修改为: $imgUrl = $cfg_uploaddir.'’/.MyDate("ym",time());
从此以后,所有从远程下载并本地化的图片都会按照月份保存。
通过以上步骤,您可以轻松地让Dedecms实现图片按月存放的功能。这不仅提升了文件管理的效率,还可能间接改善您的网站SEO表现,因为清晰的文件结构更受搜索引擎青睐。