Netword admin > sites > edit > settings
«Uploads Use Yearmonth Folders» изменить значение с 1 на 0.
Супер, загружает в 1 папку, уже не по годам и месяцам.
Нужно заходить в каждый сайт и ставить параметр с 1 на 0.
А можно ли сделать, чтоб одна папка была для всех сайтов?.
У вас сейчас скорей всего должно грузить в папку wp-content/uploads все ваши медиафайлы. Без месяца и года. Если есть дополнительные папки (кроме датированных), то они технические, нужны для некоторых плагинов и тем. Их лучше не трогать. В них все равно нет загружаемых файлов.
Вообще папку(папки) загрузки файлов можно менять как вам хочется, но для этого надо знать немного PHP. https://codex.wordpress.org/Plugin_API/Filter_Reference/upload_dir нужный хук.
-
Ответ изменён 6 лет, 9 месяцев назад пользователем
akkoxe.
В этом и проблема не в одну грузит, у каждого сайта своя папка:
saqn1.ru/wp-content/uploads/sites/3/
saqn1.ru/wp-content/uploads/sites/4/
saqn1.ru/wp-content/uploads/sites/5/
saqn1.ru/wp-content/uploads/sites/6/
saqn1.ru/wp-content/uploads/sites/7/
Подробнее можно про хук, куда его писать в какой файл?
В этом и проблема не в одну грузит, у каждого сайта своя папка:
Что от того, что все сайты будут грузить в одну папку один каталог? Только бардак и проблемы чтения файловой системой и ПО (напр фтп-менеджерами). Файлы не будут в общей медиатеке, чего Вам, предполагаю, и хотелось бы.
Мне так нужно, т.к. я один администратор и другого не будет.
я один администратор и другого не будет.
Это вообще не имеет никакого отношения к Вашей хотелке.
Если нужно использовать один и тот же файл на разных сайтах — возможно, будет полезен плагин Network Shared Media.
Иначе я тоже не вполне понимаю, зачем складывать файлы со всех сайтов в одну папку.
В этом и проблема не в одну грузит, у каждого сайта своя папка
Почему в этом проблема?
Писать в function.php, как писать в function.php и в какой из function.php писать в интернете много инфы. На wp-kama есть что почитать по этому поводу.
Код примерно такой:
add_filter( 'upload_dir', 'my_custom_upload_directory' );
function my_custom_upload_directory( $directory ) {
$subdirectory = 'название_нужной_папки_на_английском';
$originaldir = $directory;
$directory['subdir'] = $subdirectory;
$directory['path'] = $originaldir['basedir'] . $subdirectory;
$directory['url'] = $originaldir['baseurl'] . $subdirectory;
return $directory;
}
Там где название папки — название папки, в которую будут добавляться все файлы. в начале и в конце не должно быть «/», на сколько я помню (давно писал этот код уже). то есть можно написать «papka/suda/grusit/vottak» и у вас будет полный путь к файлам «wp-conten/uploads/papka/suda/grusit/vottak», если нужно просто в «wp-conten/uploads» — «название_нужной_папки_на_английском» убираем, кавычки ''
сохраняем, пробелы не ставим. Если туда будете пихать переменные, меняйте кавычки на понимающие переменные.
-
Ответ изменён 6 лет, 9 месяцев назад пользователем
akkoxe.
Соответственно, если у вас много сайтов, то надо в каждом это писать в их функции. Или же делать «вечный плагин» через mu-plugins (гуглите). У меня второй вариант используется.
Файлы не будут в общей медиатеке, чего Вам, предполагаю, и хотелось бы.
Это кстати решаемо, надо просто на всех сайтах добавлять файлы в медиатеку через функции, проверяя файловую папку на наличие новых файлов каждые сколько то минут посредством крон задач. Но это дополнительная нагрузка на сервер и это костыль.
Есть еще правильный вариант, надо просто каждый загружаемый файл записывать в общую базу (а не так как по дефолту, когда для каждого сайта своя). Соответственно сделав базу медиафайлов общей для всех сайтов.