Функция WP_UPLOAD_DIR() в WordPress
Функция wp_upload_dir()
позволяет получить массив, содержащий путь к текущему каталогу загрузок и его URL.
Как работает функция
-
Проверка настроек: Функция сначала проверяет значение параметра
upload_path
. Если он задан и не пуст, то будет использоваться именно он. Если пуст, то по умолчанию используется путьWP_CONTENT_DIR/uploads
. -
Константа UPLOADS: Если определена константа
UPLOADS
, то она переопределит значениеupload_path
. -
Путь для URL: URL для загрузок определяется либо через параметр
upload_url_path
, либо с помощью константыWP_CONTENT_URL
, к которой добавляется/uploads
. -
Форматирование по времени: Если включена опция
uploads_use_yearmonth_folders
, загруженные файлы будут храниться в каталогах, разделенных по годам и месяцам. -
Обработка ошибок: Если создать каталог не удалось, функция вернет сообщение об ошибке с ключом
'error'
, указывающее на то, что родительский каталог не доступен для записи.
Использование функции
Функция вызывается следующим образом:
$upload_dir = wp_upload_dir( $time = null, $create_dir = true, $refresh_cache = false );
- $time (string|null): Дата в формате 'yyyy/mm' (по умолчанию null).
- $create_dir (true|false): Нужно ли проверять и создавать каталог загрузок (по умолчанию true).
- $refresh_cache (true|false): Нужно ли обновлять кэш (по умолчанию false).
Примеры
Пример 1: Получение данных о каталоге загрузок
Вывод всех данных о загрузках:
$upload_dir = wp_upload_dir();
print_r( $upload_dir );
Результат будет таким:
Array
(
[path] => /home/k/wp-example.com/public_html/wp-content/uploads/2014/02
[url] => http://wp-example.com/wp-content/uploads/2014/02
[subdir] => /2014/02
[basedir] => /home/k/wp-example.com/public_html/wp-content/uploads
[baseurl] => http://wp-example.com/wp-content/uploads
[error] =>
)
Пример 2: Получение URL каталога загрузок
Чтобы получить URL каталога загрузок, используйте следующий код:
$upload_dir = wp_upload_dir();
echo $upload_dir['baseurl']; // вывод: http://wp-example.com/wp-content/uploads
Пример 3: Получение всех элементов в виде объекта
Для удобства можно преобразовать массив в объект:
$upload_dir = (object) wp_upload_dir();
if( !$upload_dir->error ){
echo $upload_dir->path ."n";
echo $upload_dir->url ."n";
echo $upload_dir->subdir ."n";
echo $upload_dir->basedir ."n";
echo $upload_dir->baseurl ."n";
}
Результат будет аналогичным:
/home/wp-example.com/public_html/wp-content/uploads/2015/08
http://wp-example.com/wp-content/uploads/2015/08
/2015/08
/home/wp-example.com/wp-content/uploads
http://wp-example.com/wp-content/uploads
Возвращаемое значение
Функция возвращает массив с информацией о каталоге загрузок:
Array
(
[path] => Путь к директории загрузок
[url] => URL директории загрузок
[subdir] => Подкаталог, если используется опция с разделением по годам и месяцам
[basedir] => Базовый путь без подкаталога
[baseurl] => Базовый URL без подкаталога
[error] => Сообщение об ошибке, если оно есть
)
Изменения в функции
Функция wp_upload_dir()
была представлена в версии 2.0.0 и с тех пор продолжает использоваться в WordPress.
Теперь вы знаете, как использовать функцию wp_upload_dir()
для работы с загрузками в WordPress. Она поможет вам организовать ваши файлы и избежать ошибок в процессе загрузки.