Intereting Posts
WP REST api возвращает бессмысленный символ Несколько постоянных ссылок для одного сообщения с несколькими таксономиями Список всех записей custom-post-type: Добавить параметр year-parameter? Пользовательский тип почтового адреса – фильтр по таксономии Сообщения на странице – Как настроить URL-адрес? Использование настраиваемого языкового файла для плагина Event Organizer? Показывается только название изображения Санизировать введенный пользователем CSS Как я могу удалить JUST тег title из функции wp_head ()? Термины таксономии фильтра с использованием нескольких идентификаторов в edit-tags.php Массовое удаление пользователей Отобразить список всех сообщений автора с автора на странице автора (author.php) в альфебетическом порядке Как сделать записи Gravity Forms доступными в публичном интерфейсе? Pagination работает в пользовательском цикле запросов, но не работает в shortcode Используйте wp_redirect для добавления параметра

Переименование загрузки изображений с шириной в имени файла

Я пытаюсь изменить формат имени, который использует WordPress для переименования загруженных файлов. Например, когда я загружаю изображение с именем файла cat-picture.jpg WordPress создаст масштабированные версии и переименует имя файла в варианты cat-picture-{WIDTHxHEIGHT}.jpg . Есть ли способ, которым я могу перенести этот атрибут width & height в начало имени файла, вместо этого получаю варианты {WIDTHxHEIGHT}-cat-picture.jpg ? Итак, в контексте этого примера, я хотел бы, чтобы имя файла было переименовано в 600x400-cat-picture.jpg . Мысли?

Я просмотрел этот пост и этот пост , но я не могу придумать рабочее решение. Вот мой код:

 add_filter( 'wp_handle_upload_prefilter', 'modify_uploaded_file_names', 20); function modify_uploaded_file_names( $image ) { // Get default name of uploaded file and set to variable $imagename = $image['name']; // Case switch for multiple file extensions switch ( $image['type'] ) { case 'image/jpeg' : $suffix = 'jpg'; break; case 'image/png' : $suffix = 'png'; break; case 'image/gif' : $suffix = 'gif'; break; } // Get size of uploaded image and assign to variable $imagesize = getimagesize($image); // Re-structure uploaded image name $image['name'] = "{$imagesize[0]}x{$imagesize[1]}-{$imagename}.{$suffix}"; return $image; } 

Мне удалось сделать это с помощью фильтра image_make_intermediate_size .

Вероятно, весь path/filename.extension расчленение и переделка могут быть оптимизированы или сделаны одним движением, но, увы, я дам это читателю:

 // The filter runs when resizing an image to make a thumbnail or intermediate size. add_filter( 'image_make_intermediate_size', 'rename_intermediates_wpse_82193' ); function rename_intermediates_wpse_82193( $image ) { // Split the $image path into directory/extension/name $info = pathinfo($image); $dir = $info['dirname'] . '/'; $ext = '.' . $info['extension']; $name = wp_basename( $image, "$ext" ); // Build our new image name $name_prefix = substr( $name, 0, strrpos( $name, '-' ) ); $size_extension = substr( $name, strrpos( $name, '-' ) + 1 ); $new_name = $dir . $size_extension . '-' . $name_prefix . $ext; // Rename the intermediate size $did_it = rename( $image, $new_name ); // Renaming successful, return new name if( $did_it ) return $new_name; return $image; }