WordPress 對於上傳的文件默認不改變文件的原名稱,有博主可能由於文件量大而不願意逐個重命名文件,如果直接上傳的話,可能會導致中文文件名的文件出現亂碼或其它問題,如果附件保存在同一個目錄,也可能導致文件名重複而被覆蓋。之前使用 zblog 、 dedecms 等程序時,系統都會對上傳的文件自動重命名,搜索發現可以通過修改 WordPress 源代碼實現文件自動重命名。
操作方法:
在 WordPress 程序的 wp-admin/includes/目錄中找到 file.php 文件,並進行編輯,在 327 行左右找到以下代碼:
// Move the file to the uploads dir
$new_file = $uploads['path'] . "/$filename";
if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )
return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ) );
將其替換為
// Move the file to the uploads dir
$new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext;
if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )
return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ) );
PS:整體代碼其實就是替換掉了"/$filename";
保存後覆蓋原文件,那麼上傳文件就會以 「年月日時分秒+千位毫秒整數」 的格式重命名文件了,如 「20121023122221765.jpg」 。