Можно ли загружать медиафайлы в определенную папку?
По умолчанию медиафайлы, загруженные через панель управления WordPress, помещаются в папку, определяемую текущей датой. Например: /wp-content/uploads/2011/09/. После загрузки медиафайла в WordPress нет видимых опций для изменения расположения файла.
Могу ли я указать WordPress размещать медиафайлы в отдельной папке? Не все медиафайлы. Только те, которые я специально выберу.

- Перейдите в
Консоль -> Настройки -> Медиафайлы
- Введите желаемое расположение в поле Хранить загрузки в этой папке
- Снимите галочку с пункта Организовывать мои загрузки в папки по месяцам и годам
Это задаст глобальное расположение для загрузок. Чтобы указать расположение для отдельных файлов, вам понадобится плагин, например WP Easy Uploader (не реклама, как таковой; просто первый, который я нашел).

Спасибо! Это ответило на мой вопрос, и тот плагин, который вы указали, выглядит идеально. К сожалению, он не обновлялся с 2009 года. Думаю, мне стоит поискать что-то более актуальное.

Для тех, кто тоже ищет решение: этот плагин всё ещё работает на WordPress 3.5. Однако он довольно ограничен - нужно вручную вводить путь (нельзя выбрать через проводник), можно загружать только один файл за раз, и нужно заходить в сам плагин для загрузки, он не заменяет стандартную функциональность загрузки. Но, вероятно, это всё ещё лучший плагин для загрузки файлов.

WP EASY Uploader больше не обновляется. Я нашёл плагин custom upload dir

В WordPress 6.1 и, вероятно, в более ранних версиях, в разделе Консоль > Настройки > Медиафайлы больше нет текстового поля Хранить загрузки в этой папке, поэтому шаг 2 выше не работает. Вам придется использовать плагин (например, Custom Upload Dir выглядит перспективным) или изменять PHP код.

Я бы не рекомендовал отключать опцию 'Организация медиафайлов', за исключением случаев, когда вы управляете хранением файлов другим способом.
Наличие большого количества файлов в одной директории проблематично по многим причинам, хотя в некоторых ситуациях это неизбежно. Но для веб-сайта это всегда можно избежать.
Мне достался сайт на WordPress, и я получил задачу перенести его на другой хостинг. Это оказалось проблемой, поскольку все загруженные файлы находились в одной папке - более 93 000 файлов (да, девяносто три тысячи).
Ни один FTP-клиент не смог проиндексировать такое количество файлов и просто отказывался заходить в эту папку.
У меня не было shell-доступа к системе.
Я не мог сделать полный дамп через панель управления хостингом, так как такой опции не было.
Пришлось просить хостинг-провайдера сделать дамп за меня, что само по себе стало отдельной задачей - убедить их это сделать.
Помимо этих потенциальных проблем, индексация тысяч файлов происходит медленнее, чем индексация десятков или сотен файлов. Проще говоря, производительность страдает при большом количестве файлов в одной директории.

К сожалению, структура организации по датам, которая очень полезна для блогов, не так удобна для сайтов на CMS без блогов. Кажется, должен быть простой способ создать структуру загрузки файлов на основе таких параметров, как тип записи (например, загрузки страниц помещаются в другую папку, чем загрузки пользовательских типов записей).

Сейчас я сталкиваюсь с той же проблемой. Вы нашли хороший способ разделить папку после переноса на другой хостинг, или просто оставили существующие 93 тыс. файлов как есть и включили опцию "Организовать медиафайлы"?

Еще одно решение этой проблемы:
- Перейдите в Консоль → Настройки → Медиафайлы и снимите галочку с пункта "Организовывать мои загрузки в папках, разделенных по месяцам и годам". Теперь все загружаемые файлы будут помещаться в папку "wp-content\uploads" [необязательный шаг, но рекомендуется для удобного поиска новых загрузок при перемещении в другую папку].
- Установите плагин "Media File Manager".
- Перейдите в Консоль → Медиафайлы → Media File Manager.
Здесь вы можете создавать любые папки для организации вашего контента. Два разделенных окна предназначены для перемещения контента между разными папками – создайте папку с одной стороны, и она обновится в обоих окнах. Используйте обе стороны для навигации между текущей и целевой папками, затем нажмите на стрелку влево или вправо, чтобы переместить файл – это просто!
Обратите внимание, что база данных также обновляется. Например, если вы переместите изображение, которое уже используется на вашем сайте, вам нужно будет заново выбрать это изображение из Медиатеки, иначе оно не будет отображаться на сайте.
Надеюсь, эта информация окажется полезной. С уважением!

Быстрое решение для редких случаев, когда нужно загрузить медиафайл в директорию за определённый год/месяц в прошлом:
- создайте временный черновик записи (не сохраняйте)
- измените дату публикации на нужные год и месяц и нажмите [Сохранить черновик]
- используйте [Добавить медиафайл] в этой записи — WordPress сохранит файл в папку для указанного года/месяца.
- вернитесь к списку записей и удалите черновик.
Пока запись не опубликована, она не появится на вашем сайте, в лентах и т. д., но медиафайл останется в нужной директории.
Это решение подходит для очень специфического случая из вопроса выше, но оно помогло мне, когда нужно было добавить файлы в набор загрузок, которые должны храниться вместе. Не подходит, если требуется разместить их вне хронологической структуры.

Наконец-то простое и интуитивно понятное объяснение, которое можно понять в терминах внутренней функциональности WordPress. Простая задача: (a) Чёрт, несколько медиафайлов отсутствуют (b) У меня есть оригиналы (c) Могу ли я загрузить их в исходную папку... становится кристально ясной благодаря этому решению. Для меня (новичка в WordPress, но опытного программиста) все остальные варианты кажутся излишне сложными и не отвечают на этот конкретный случай.

Вот что вам нужно: Media Library Plus
Я использовал это, и это сработало. Вот руководство по его использованию.

Используйте бесплатный плагин 'FileBird' https://wordpress.org/plugins/filebird/, и вы увидите, как загружать файлы в конкретную папку, как показано на изображении ниже.

Я ставлю FileBird дизлайк, потому что он не решает поставленную задачу (насколько я её понял). Если мне нужно вернуть файлы, загруженные в .../2021/06, обратно в их исходное расположение в .../2018/03, то в FileBird нет очевидного способа сделать это. Насколько я вижу, плагин не предоставляет никакой структуры папок, кроме созданной вручную, и не даёт доступа к нативной структуре WordPress. Если это не так, то его дизайн скрывает эту нативную структуру, и за одно это уже стоит поставить дизлайк.

Просто используйте http://wordpress.org/extend/plugins/nextgen-gallery/ Nextgen Gallery. С его помощью вы можете загружать группы изображений, создавать галереи или загружать отдельные изображения через стандартное окно вставки изображений в WordPress.

Да, я не вижу, как nextgen-gallery делает то, что хочет автор вопроса.
