get_dirsize()WP 3.0.0

Получает размер директории в байтах. Результат кэшируется во временные опции: get_transient().

Вспомогательная функция, которая используется для проверки есть ли у блога в MU сборке доступное место в каталоге uploads.

Функция определена только в мультисайтовой установке WordPress. Поэтому чтобы функция работала в обычной установке, нужно подключить файл:

require_once ABSPATH . WPINC .'/ms-functions.php';
Работает на основе: recurse_dirsize()

Хуков нет.

Возвращает

int|false|null. Размер в байтах. Если директории не существует то вернет fales.

Использование

get_dirsize( $directory, $max_execution_time );
$directory(строка) (обязательный)
Полный путь до каталога (папки).
$max_execution_time(число)
Максимальное время выполнения в секундах. Время считается начиная от глобальной точки отсчета (когда WP только начал загружаться - константа WP_START_TIMESTAMP).
По умолчанию: null - ini_get( 'max_execution_time' )

Примеры

0

#1 Получим полный размер каталога загрузок uploads

$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 parameter added.

Код get_dirsize() WP 6.5.2

function get_dirsize( $directory, $max_execution_time = null ) {

	/*
	 * Exclude individual site directories from the total when checking the main site of a network,
	 * as they are subdirectories and should not be counted.
	 */
	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;
}