Как рандомизировать загруженные имена файлов в WordPress
Возможности загрузки файлов WordPress действительно улучшились за эти годы, но есть одна проблема, с которой мы продолжаем сталкиваться — имена файлов идеально сохраняются при загрузке, что приводит к непоследовательным и очень длинным путям к файлам изображений.
И что еще хуже, если вы используете Skitch для захвата скриншотов различных команд терминала, он захватывает полный путь от терминала и использует его в качестве имени файла, которое просто абсурдно длинное.
Гораздо более простое решение — просто добавить пару строк кода, чтобы изменить все загружаемые изображения на простое рандомизированное имя файла, а затем обрезать его до первых 8 символов, чтобы убедиться, что пути к изображениям в HTML не слишком сумасшедшие. .
// randomize upload filenames function htg_randomize_uploaded_filename( $filename ) { // does it have an extension? grab it $ext = empty( pathinfo( $filename )['extension'] ) ? '' : '.' . pathinfo( $filename )['extension']; // return the first 8 characters of the MD5 hash of the name, along with the extension return substr(md5($filename), 0, 8) . $ext; } add_filter( 'sanitize_file_name', 'htg_randomize_uploaded_filename', 10 );
Вставьте код в свой файл functions.php, расположенный в папке вашей темы, и он должен сразу начать работать.
Для этого к фильтру sanitize_file_name добавляется функция, которая выполняет работу и возвращает новое имя файла. WordPress попытается использовать это новое имя, но если возникнет конфликт, он добавит -1 в конец и продолжит нумерацию до тех пор, пока конфликт не исчезнет. На самом деле это маловероятно, но хорошо знать, что это не будет проблемой.