Размер галереи — килобайт, мегабайт
Есть посты состоящие чисто из галереи и имеющие записи типа [gallery_ ids="271,272,273,274,275"]
код вывода размера отдельной картинки есть, а как посчитать суммарный размер всех загруженных изображений в галерею?
Пока вопрос не осваивал, если освою отпишусь, а так жду овета, может кто-то сталкивался и ответит ранее чем я найду (не найду) на просторах интернета.
Тут много вариантов. Суть одна. Нужно получить все ID картинок, потом получить пути до этих картинок и посчитать размер каждой и суммировать все это.
Функции которые пригодятся:
Получим ID картинок галереи get_post_galleries()
Получим путь до картинки: get_attached_file()
Получим размер одной картинки в байтах:
Теперь тебе остается все это собрать в рабочий код и выложить его сюда
--
Готовый код из коммента ниже:
<?php /* суммарный размер всех изображений галереи for me Kolshix */ $gallery = get_post_galleries( $post->ID, false ); // Получить все id вложенных файлов (можно и get_post_gallery) $gallery = $gallery[0]; // Взять нужную ячейку массива (так нужно в моем случае) $gallery_ids = explode(',', $gallery['ids']); // Извлечь массив id $s = 0; foreach( $gallery_ids as $gallery_id ){ $s += filesize( get_attached_file( $gallery_id ) ); // Сложить размер через id } /* конвертация бит килобайт мегабайт гигабайт */ $bytes = $s; $s = array('B', 'KB', 'MB', 'GB'); $e = floor(log($bytes)/log(1024)); echo $img = sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e)))); ?>Все получилось, но для моего случая = есть засада
у меня галерея заполняется таким способом
это нужно было для создания пагинации галереи по 20 картинок - ещё когда это делал (с плагином Cleaner Gallery) знал что будет засада, но руки не доходили, и сейчас этот момент настал
вот что возвращает массив вместо id изображений
Думаю недельку потрачу чтоб полечить галереи - а ведь знал что вермя настанет
пока делаю так
<?php /* суммарный размер всех изображений галереи for me Kolshix */ $gallery = get_post_galleries( $post->ID, false ); // Получить все id вложенных файлов (можно и get_post_gallery) $gallery = $gallery[0]; // Взять нужную ячейку массива (так нужно в моем случае) $gallery_ids = explode(',', $gallery['ids']); // Извлечь массив id $s = 0; foreach( $gallery_ids as $gallery_id ){ $s += filesize( get_attached_file( $gallery_id ) ); // Сложить размер через id } /* конвертация бит килобайт мегабайт гигабайт */ $bytes = $s; $s = array('B', 'KB', 'MB', 'GB'); $e = floor(log($bytes)/log(1024)); echo $img = sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e)))); ?>Все правильно (код только чуть подправил твой). Теперь осталось только получить ID с использование плагина...