X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как реализовать разные папки для загрузки файлов в WP?, [Вопрос к знатокам WP]
Mistic
Mistic
Topic Starter сообщение 11.2.2018, 20:15; Ответить: Mistic
Сообщение #1


Добрый вечер всем. Можно ли как-то реализовать разные папки для загрузки файлов в Wordpress. Стоит задача картинки (jpg, jpeg, png, gif) размещать в одной папке, а остальные файлы - в другой. Есть ли какая-то функция для этого? Чтобы при загрузке файлов медиафайлер понимал, что архив .zip нужно положить например, в папку files, а картинку jpg в папку images.

Спасибо. :popcorn1:

Сообщение отредактировал Mistic - 11.2.2018, 20:20
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
Gerga
сообщение 11.2.2018, 23:00; Ответить: Gerga
Сообщение #2


Mistic, такой вариант написал:

Код
// Функция вызывается для каждого загружаемого файла
function custom_pre_upload( $file ) {
    
    // переменная для передачи названия директории
    global $directory;
    
    // получение типа передаваемого файла
    $type = $file[ 'type' ];
    
    // названия директорий по типу файла
    $directories = array(
        'text/plain' => '/files',
        'image/jpeg' => '/images',
    );
    
    // проверка $directories на наличие названия директории по типу файла
    if ( isset( $directories[ $type ] ) ) {        
        // запись названия директории
        $directory = $directories[ $type ];        
    } else {
        // сообщаем, что по типу файла директория не найдена
        $directory = false;
    }
        
    // установка фильтра для изменения директории  
    add_filter( 'upload_dir', 'custom_upload_dir' );
        
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'custom_upload_dir' );    


// функция изменения директории
function custom_upload_dir( $upload ) {
    
    // переменная с названием нужной директории
    global $directory;
    
    // проверка на наличие названия директории
    if ( $directory ) {        
        $upload['subdir'] .= $directory;
        $upload['path'] .= $directory;
        $upload['url'] .= $directory;        
    }
    
    return $upload;
}


В массиве $directories хранятся названия директорий, где ключом к названию является тип загружаемого файла.

хуки которых использовал:

https://codex.wordpress.org/Plugin_API/Filt...pload_prefilter

https://codex.wordpress.org/Plugin_API/Filt...ence/upload_dir
https://developer.wordpress.org/reference/hooks/upload_dir/

Сообщение отредактировал Gerga - 11.2.2018, 23:08


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2009bes
2009bes
сообщение 12.2.2018, 12:47; Ответить: 2009bes
Сообщение #3


Mistic, плагин WP Real Media Library


--------------------
Рерайт | Копирайт| Наполнение сайтов
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
Gerga
сообщение 12.2.2018, 13:02; Ответить: Gerga
Сообщение #4


Цитата(2009bes @ 12.2.2018, 11:47) *
плагин WP Real Media Library

у плагина нет возможности разбивать в разные папки при загрузке в зависимости от типа файла. Например при массовой загрузке файлы будут размещены в одной директории не зависимо от типа файла.

Сообщение отредактировал Gerga - 12.2.2018, 13:08
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2009bes
2009bes
сообщение 12.2.2018, 13:07; Ответить: 2009bes
Сообщение #5


Цитата(Gerga @ 12.2.2018, 14:02) *
у плагина нет возможности разбивать в разные папки при загрузке.

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


--------------------
Рерайт | Копирайт| Наполнение сайтов
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
Gerga
сообщение 12.2.2018, 13:19; Ответить: Gerga
Сообщение #6


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

Цитата(2009bes @ 12.2.2018, 12:07) *
чем писать код что сам будет перемещать файлы согласно расширениям.

код уже написан и занял 47 строк, в этом плагине сколько строк? Сколько функционала, который не будет использоваться?

Сообщение отредактировал Gerga - 12.2.2018, 13:19
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mistic
Mistic
Topic Starter сообщение 12.2.2018, 17:56; Ответить: Mistic
Сообщение #7


Gerga, этот код в functions.php добавлять?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал Mistic - 12.2.2018, 17:57
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
11 Aloof 2695 Сегодня, 12:48
автор: diviner99
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
2 Rebex 1153 Вчера, 18:39
автор: Rebex
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
54 arendator 34763 Вчера, 15:16
автор: arendator
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
83 AdsPower 24381 14.4.2024, 22:52
автор: AdsPower
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
28 freeax 4566 12.4.2024, 1:22
автор: PostMan1


 



RSS Текстовая версия Сейчас: 16.4.2024, 13:27
Дизайн