WordPress как на ладони
wordpress jino

get_dirsize() WP MU

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

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

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

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

Хуков нет.

Возвращает

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

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

get_dirsize( $directory );
$directory(строка) (обязательный)
Полный путь до каталога (папки).

Примеры

#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

Код get dirsize: wp-includes/ms-functions.php VER 4.9.1

<?php
function get_dirsize( $directory ) {
	$dirsize = get_transient( 'dirsize_cache' );
	if ( is_array( $dirsize ) && isset( $dirsize[ $directory ][ 'size' ] ) )
		return $dirsize[ $directory ][ 'size' ];

	if ( ! is_array( $dirsize ) )
		$dirsize = array();

	// Exclude individual site directories from the total when checking the main site,
	// as they are subdirectories and should not be counted.
	if ( is_main_site() ) {
		$dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory, $directory . '/sites' );
	} else {
		$dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory );
	}

	set_transient( 'dirsize_cache', $dirsize, HOUR_IN_SECONDS );
	return $dirsize[ $directory ][ 'size' ];
}

Cвязанные функции

Из метки: Файловая система (создание удаление директорий файлов)

Еще из раздела: Мультисайт

get_dirsize Комментариев нет

    Здравствуйте, !

    Ваш комментарий
    Предпросмотр