# Функция GET_DIRSIZE() в WordPress
Функция GET_DIRSIZE()
используется для определения размера директории в байтах. Результат кэшируется в виде временной опции или объекта.
Кэш хранится в get_transient( 'dirsize_cache' )
в виде массива, индексированного по имени папки.
Эта функция служит вспомогательным инструментом, который в основном применяется для проверки, превысил ли блог на многофункциональном сайте разрешенное пространство для загрузки.
**Важно:** Функция определена только для установки WordPress Multisite. Чтобы использовать её на одном сайте, необходимо включить следующий файл:
```php
require_once ABSPATH . WPINC .'/ms-functions.php';
Использует
Функция ссылается на recurse_dirsize()
для вычисления размера директории.
Хуки
Эта функция не имеет хуков.
Возврат значения
Функция возвращает:
int|false|null
: размер директории в байтах. Возвращаетfalse
, если директория не существует.
Использование функции
get_dirsize( $directory, $max_execution_time );
$directory
(строка, обязательно): Полный путь к директории, размер которой нужно узнать.$max_execution_time
(целое число, опционально): Максимальное время выполнения функции в секундах. Остановка будет определяться глобально, с момента начала загрузки WordPress. По умолчанию —null
.
Примеры использования
Пример 1: Получение полного размера директории загрузок
$upload_dir = wp_upload_dir();
// Подключаем необходимые функции
require_once ABSPATH . WPINC .'/ms-functions.php';
// Получаем размер директории загрузок
$mb = get_dirsize( $upload_dir['basedir'] );
echo number_format( $mb / (1024*1024), 1 ) .' MB'; // Вывод: 93.2 MB
Обновления функции
- С версии 3.0.0: Функция была впервые введена.
- С версии 5.2.0: Добавлен параметр
$max_execution_time
.
Код функции GET_DIRSIZE()
function get_dirsize( $directory, $max_execution_time = null ) {
/*
* Исключаем директории отдельных сайтов из общего размера,
* когда проверяем основной сайт сети, так как они являются
* подсистемами и не должны учитываться.
*/
if ( is_multisite() && is_main_site() ) {
$size = recurse_dirsize( $directory, $directory . '/sites', $max_execution_time );
} else {
$size = recurse_dirsize( $directory, null, $max_execution_time );
}
return $size;
}
Связанные функции
Функции для работы с файловой системой:
copy_dir()
list_files()
recurse_dirsize()
unzip_file()
wp_delete_file()
wp_delete_file_from_directory()
WP_Filesystem()
WP_Filesystem_Direct()
wp_mkdir_p()
wp_tempnam()
Функции для работы с многофункциональными сайтами:
get_blog_details()
get_current_blog_id()
get_id_from_blogname()
get_main_site_id()
get_site_meta()
get_sites()
grant_super_admin()
is_blog_admin()
is_main_site()
is_multisite()
is_network_admin()
is_user_admin()
network_admin_url()
network_home_url()
restore_current_blog()
switch_to_blog()