Фильтр позволяет вмешаться в автоматически сформированную структуру пути для загрузки и изменить ее по своему усмотрению.
Можно это дело оформить плагином, а можно использовать такую возможность в файле functions.php нашей/вашей темы.
< ? php
add_filter('upload_dir', 'my_upload_dir'); // добавляем обработчик фильтра. Приоритет и количество передаваемых параметров — по умолчанию.
function my_upload_dir($path) {
if (is_user_logged_in()) {
// в моем случае было нужно сохранять файлы в подкаталог с именем текущего залогинившенгося пользовтеля
$user = wp_get_current_user(); // получаем данные пользователя
$the_path = WP_CONTENT_DIR . '/uploads'; // определяем пути загрузки
$the_url = WP_CONTENT_URL . '/uploads';
$path['path'] = $the_path.'/'.$user->user_login; // добавляем к путям загрузки имя пользователя
$path['url'] = $the_url.'/'.$user->user_login;
$path['basedir'] = $path['path']; // эти значения также нужно установить, из них формируется имя фала
$path['baseurl'] = $path['url'];
$path['subdir'] = ''; // подкаталог в нашем каталоге загрузки.
// Устанавливается вордпрессом, если отмечено "Помещать загруженные мной файлы в папки по месяцу и году" в настройках.
$path['error'] = false; // нет ошибок. Или можно установить значение, если в предыдущих шагах что-то пошло не так.
return $path; // возвращаем новые пути
// Кстати, проверка доступности создания каталога проводится вордпрессом ПОСЛЕ обработки установленных фильтров.
}
}
? >

Изменение пути для загрузки медиафайлов
