Estoy usando el siguiente código de plantilla para mostrar enlaces de archivos adjuntos:
$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);
}
pero después del enlace necesito mostrar el tamaño del archivo. ¿Cómo puedo hacer esto?
Supongo que podría determinar la ruta del archivo (via wp_upload_dir()
y a substr()
of wp_get_attachment_url()
) y llamar, filesize()
pero eso parece desordenado, y me pregunto si hay un método integrado en WordPress.
templates
attachments
Bobby Jack
fuente
fuente
Respuestas:
Hasta donde sé, WordPress no tiene nada incorporado para esto, solo haría:
filesize( get_attached_file( $attachment->ID ) );
fuente
wp_upload_dir()
etc.!He usado esto antes en functions.php para mostrar el tamaño del archivo en un formato fácil de leer:
Y luego en mi plantilla:
fuente
size_format()
ywp_convert_bytes_to_hr()
Yo lo haría :
O con un tamaño legible como
423.82 KB
Refs: get_attached_file () , filesize () , size_format ()
Nota: Defina su
$attachment_id
fuente
Para encontrar el tamaño de un archivo agregado a través del complemento de campos personalizados, hice esto:
Solo asegúrese de establecer el "Valor de retorno" del campo personalizado en "Objeto de archivo".
fuente
Hay una solución más fácil, para obtener tamaños de archivo legibles por humanos.
fuente
Estaba buscando lo mismo y encontré esta solución incorporada de WordPress.
Ver más en
wp_get_attachment_metadata()
fuente
Al menos para el audio, el tamaño del archivo se guarda como "metadatos".
Este puede no ser el caso de imágenes y videos.
fuente