Web5X Блог

Блог о создании сайта, конструкторе сайтов

Web5X Блог

Блог о создании сайта, конструкторе сайтов

Поиск по блогу

Изменение директории загрузки изображения на свою / WordPress

Обновлено: 15.12.2023
0 комментариев

Иногда бывает так, что нам необходимо изменить директорию загрузки медиа файлов на свою. Например самое простое, попросту отказаться от распределения файлов по директориям состоящий из год/месяц/дата. Это сделать легко, достаточно перейти в Настройки - Медиафайлы и снять галочку с Помещать загруженные мной файлы в папки по месяцу и году . Но обратите внимание, если предполагается, что сайт у вас очень большой, т.е много изображений, то делать это не рекомендуется, так как при необходимости сделать листинг файлов, например через ФТП , то вы это не сможете, так как есть ограничения на кол-во отображаемых файлов.

Organize Media Folder . Если нужно изменить директорию на свою, то можно воспользоваться плагином, который позволит задать необходимую директорию загрузки, а так же переносить файлы из существующих директорий.

Т.е можно выбрать как постоянную директорию, так и выбирать при загрузки, указав текущую директорию через верхнюю панель. Но что делать если нужно загружать динамически, например в зависимости от id записи. А для этого есть другой плагин.

Custom Upload Dir - плагин в котором можно создать шаблон загрузки медиафалов. Как пример будем рассматривать шаблон с указанием id записи в качестве директории.

Из изображения видно, что простые настройки дают нам результат. Мало того, мы можем ввести id записи и посмотреть на тестовый результат. Т.е вводим id записи и нажимает Update Settings

Без плагинов тоже можно. Если вы любите как и я, короткие коды php сниппеты, то можно воспользоваться подобным решением, которое я использую на некоторых сайтах, где нужно загружать файлы в директорию записи, а если загружаем вне редактирования записи то загружается в корень т.е в uploads . Ниже код

<?php
add_filter('upload_dir', 'custom_upload_dir');
function custom_upload_dir($param){
    $mydir = '/' . intval($_REQUEST['post_id']) ;  
    $param['path'] = $param['basedir'] . $mydir;
    $param['url'] = $param['baseurl'] . $mydir;
    return $param;
}

Данный код работает, но учтите, если вы не сохранили запись, т.е в черновик и у него не появилось его id , то загруженные изображение упадут в uploads, поэтому сначала сохраните запись как черновик.

Остались вопросы?
Листай ниже или клик по ссылке выше. Там можно задать вопрос или почитать комментарии других.
Написать комментарий

0 комментариев

Оставьте первый комментарий