Intereting Posts
Есть ли способ последовательного умножения результатов архивного цикла? Проверить, находится ли ключ в массиве user_meta Требовать персонализированный тип сообщения, если is_admin () – шаблон не отображается? cookie влияет на мой сайт wordpress Как программно добавлять элементы в пользовательское меню Роли пользователей: как скрыть плагин от показа в WP-Admin? Как показать пункт меню панели управления только пользователям с определенными возможностями? Как я могу хранить данные из настраиваемых полей в пользовательских таблицах? Как действует таксономия WordPress Parent-Child? Заказывать сообщения с помощью meta_value, даже если meta_key не заполняется Разделить URL-адрес для определенной страницы Поле поиска ссылок в Google и строка поиска по URL-адресу Что такое entry.php и его файлы приложений и безопасно ли их удалять на большинстве сайтов miniaml? get_terms из зарегистрированных таксономий, не работающих CSS для созданного меню «Active Selected» не работает, все остальное!

Как проверить дисковое пространство, используемое медиабиблиотекой

Есть ли способ узнать, сколько дискового пространства было использовано в Media Library? Файлы мультимедиа моего блога хранятся в отдельной папке с именем «media», а не по умолчанию «wp-content / uploads».

благодаря

Solutions Collecting From Web of "Как проверить дисковое пространство, используемое медиабиблиотекой"

Используя этот ответ StackOverflow , я придумал виджет Dashboard, который отображает следующее:
Видимость папок

Я расширил запрос OP для размера uploads файла (по умолчанию или по умолчанию) и добавил wp-content (по умолчанию или пользовательский), blogs.dir в blogs.dir и базовый blogs.dir WordPress.

 <?php /* Plugin Name: Folder Sizes Dashboard Widget Plugin URI: http://wordpress.stackexchange.com/q/67876/12615 Description: List the following folder sizes in a Dashboard Widget: Uploads dir, WP Content dir, WordPress base dir. Observation: PHP folder size functions from this Answer: https://stackoverflow.com/a/8348396/1287812 */ add_action( 'wp_dashboard_setup', 'wpse_67876_wp_dashboard_setup' ); function wpse_67876_wp_dashboard_setup() { // Admins only if( current_user_can( 'install_plugins' ) ) wp_add_dashboard_widget( 'wpse_67876_folder_sizes', __( 'Folder Sizes' ), 'wpse_67876_wp_add_dashboard_widget' ); } function wpse_67876_wp_add_dashboard_widget() { $upload_dir = wp_upload_dir(); $upload_space = wpse_67876_foldersize( $upload_dir['basedir'] ); $content_space = wpse_67876_foldersize( WP_CONTENT_DIR ); $wp_space = wpse_67876_foldersize( ABSPATH ); /* ABSOLUTE paths not being shown in Widget */ // echo '<b>' . $upload_dir['basedir'] . ' </b><br />'; echo '<i>Uploads</i>: ' . wpse_67876_format_size( $upload_space ) . '<br /><br />'; // echo '<b>' . WP_CONTENT_DIR . ' </b><br />'; echo '<i>wp-content</i>: ' . wpse_67876_format_size( $content_space ) . '<br /><br />'; if( is_multisite() ) { echo '<i>wp-content/blogs.dir</i>: ' . wpse_67876_format_size( wpse_67876_foldersize( WP_CONTENT_DIR . '/blogs.dir' ) ) . '<br /><br />'; } // echo '<b>' . ABSPATH . ' </b><br />'; echo '<i>WordPress</i>: ' . wpse_67876_format_size( $wp_space ); } function wpse_67876_foldersize( $path ) { $total_size = 0; $files = scandir( $path ); $cleanPath = rtrim( $path, '/' ) . '/'; foreach( $files as $t ) { if ( '.' != $t && '..' != $t ) { $currentFile = $cleanPath . $t; if ( is_dir( $currentFile ) ) { $size = wpse_67876_foldersize( $currentFile ); $total_size += $size; } else { $size = filesize( $currentFile ); $total_size += $size; } } } return $total_size; } function wpse_67876_format_size($size) { $units = explode( ' ', 'B KB MB GB TB PB' ); $mod = 1024; for ( $i = 0; $size > $mod; $i++ ) $size /= $mod; $endIndex = strpos( $size, "." ) + 3; return substr( $size, 0, $endIndex ) . ' ' . $units[$i]; } 

PS: Я полагаю, что функция foldersize оптимизирована для производительности, как задал StackOverflow OP, но я не уверен …

Я сам использовал тот же рекурсивный метод. Он добавляет используемое пространство и прекрасно подсчитывает количество файлов. Но на сайте WP-MU, которым я управляю, многие пользователи выделили дисковое пространство до 1 ГБ и более 10 000 файлов. Чтобы иметь возможность заряжать правильную сумму, моя система должна выполнять периодическое сканирование дисков, и на этих крупных учетных записях кажется, что обработка превышает пределы обработки моих интернет-провайдеров. Поэтому, когда завершен жесткий рекурсивный цикл, процесс сворачивает и пропускает небольшую часть отделки, где идентификатор блога, пробел и дата должны быть сохранены в журнале использования. Мой единственный вариант – реализовать бит-бит – логику или обновить свой веб-отель. Это дорого, и первый вариант требует программирования такого рода, которого я бы хотел избежать.