Я использую следующий код шаблона для отображения ссылок на вложения:
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => $main_post_id
);
$attachments = get_posts($args);
foreach ($attachments as $attachment)
{
the_attachment_link($attachment->ID, false);
}
но после ссылки мне нужно отобразить размер файла. Как я могу это сделать?
Я предполагаю, что мог бы определить путь к файлу (через wp_upload_dir()
и substr()
из wp_get_attachment_url()
) и вызвать, filesize()
но это кажется грязным, и мне просто интересно, есть ли метод, встроенный в WordPress.
templates
attachments
Бобби Джек
источник
источник
Ответы:
Насколько я знаю, WordPress ничего для этого не встроил, я бы просто сделал:
filesize( get_attached_file( $attachment->ID ) );
источник
wp_upload_dir()
т. Д.!Я использовал это раньше в functions.php для отображения размера файла в легко читаемом формате:
И тогда в моем шаблоне:
источник
size_format()
иwp_convert_bytes_to_hr()
Я бы сделал :
Или с читаемым размером, как
423.82 KB
Ссылки : get_attached_file () , filesize () , size_format ()
Примечание: определите свой
$attachment_id
источник
Чтобы узнать размер файла, добавляемого через плагин настраиваемых полей, я сделал это:
Просто убедитесь, что в поле «Возвращаемое значение» пользовательского поля установлено значение «Файловый объект».
источник
Существует более простое решение, чтобы получить удобочитаемые размеры файлов.
источник
Я искал то же самое и нашел это встроенное решение WordPress.
Смотрите больше на
wp_get_attachment_metadata()
источник
По крайней мере, для аудио размер файла сохраняется как «метаданные».
Это может быть не так для изображений и видео.
источник