Intereting Posts
Только для WordPress Отключить создание папок в течение нескольких лет и месяцев в папке uploads Как изменить шаблон страницы? Как: несколько кнопок загрузки WordPress на JQuery на той же странице параметров? Могу ли я ограничить этот мета-ящик определенной страницей? Обработка генерации nonce в процессе регистрации AJAX Страница параметров плагина: флажки группировки Функция для проверки того, находится ли пользователь на верхнем уровне сети? WP Meta Query на глубине 2 Как перезагрузить панель управления после нажатия «Обновить» в «Быстрое редактирование»? wp_insert_post не возвращает идентификатор сообщения? Мой вопрос: когда я начал свой сайт, всегда возникала ошибка «страница не найдена» Получить дочерние страницы в функции get_pages Официальная документация для полей формы вложения Вызовите get_template_part () пользовательскую постоянную ссылку

Различный путь загрузки для каждого типа файла

Я хочу иметь два разных пути для разных файлов.

Например, у меня есть все .zip и файлы изображений в одном и том же месте.

Я хочу, чтобы изображения имели один путь (например, wp-content / uploads / images /)

И все zip-файлы в другом месте / пути (например, wp-content / uploads / products /)

Но то, что мне нужно, – это когда я добавляю либо в медиа-библиотеку при публикации нового сообщения для их ввода / загрузки в правильные пути автоматически.

Как я могу это сделать и это возможно?

Solutions Collecting From Web of "Различный путь загрузки для каждого типа файла"

Изменение каталога загрузки для файлов PDF кажется хорошим шагом вперед.

Хотя непроверенный, глядя на код, моя адаптация будет соответствовать …

<?php add_filter('wp_handle_upload_prefilter', 'custom_media_library_pre_upload'); add_filter('wp_handle_upload', 'custom_media_library_post_upload'); function custom_media_library_pre_upload($file){ add_filter('upload_dir', 'custom_media_library_custom_upload_dir'); return $file; } function custom_media_library_post_upload($fileinfo){ remove_filter('upload_dir', 'custom_media_library_custom_upload_dir'); return $fileinfo; } function custom_media_library_custom_upload_dir($path){ $extension = substr(strrchr($_POST['name'],'.'),1); if ( !empty( $path['error'] ) || $extension != 'zip' ) { return $path; } //error or other filetype; do nothing. elseif ( $extension = 'zip' ) { $customdir = '/products'; } elseif ( $extension = 'jpg' || $extension = 'jpeg' || $extension = 'gif' || $extension = 'png') { $customdir = '/images'; } $path['path'] = str_replace($path['subdir'], '', $path['path']); //remove default subdir (year/month) $path['url'] = str_replace($path['subdir'], '', $path['url']); $path['subdir'] = $customdir; $path['path'] .= $customdir; $path['url'] .= $customdir; return $path; } 

Это я буду придерживаться в functions.php вашей темы или в соответствующем файле темы – не в ядре wordpress, поскольку вы потеряете его при обновлении!

Вы также можете улучшить мой код, придерживаясь совпадений в массиве и сравнивая это, просто сделали это таким образом для простоты. Примером может быть …

 $imagetypes = array( 'jpg', 'jpeg', 'gif', 'png', 'etc'); if ( in_array( $extension, $imagetypes ) ) { $customdir = '/images'; }