Estou usando o seguinte código de modelo para exibir links de anexo:
$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);
}
mas após o link, preciso exibir o tamanho do arquivo. Como posso fazer isso?
Eu estou supondo que eu poderia determinar o caminho do arquivo (via wp_upload_dir()
e um substr()
de wp_get_attachment_url()
) e chamar, filesize()
mas isso parece confuso, e só estou me perguntando se existe um método incorporado ao WordPress.
templates
attachments
Bobby Jack
fonte
fonte
Respostas:
Até onde eu sei, o WordPress não tem nada embutido para isso, eu faria:
filesize( get_attached_file( $attachment->ID ) );
fonte
wp_upload_dir()
etc!Eu usei isso antes em functions.php para exibir o tamanho do arquivo em um formato facilmente legível:
E então no meu modelo:
fonte
size_format()
ewp_convert_bytes_to_hr()
Eu faria :
Ou com tamanho legível como
423.82 KB
Refs: get_attached_file () , tamanho do arquivo () , size_format ()
Nota: Defina seu
$attachment_id
fonte
Para encontrar o tamanho de um arquivo adicionado através do plug-in de campos personalizados, fiz o seguinte:
Apenas certifique-se de definir o "Valor de retorno" do campo personalizado como "Objeto de arquivo".
fonte
Existe uma solução mais fácil, para obter tamanhos de arquivos legíveis por humanos.
fonte
Eu estava procurando o mesmo e encontrei esta solução interna do WordPress.
Veja mais em
wp_get_attachment_metadata()
fonte
Pelo menos para o áudio, o tamanho do arquivo é salvo como "metadados".
Este pode não ser o caso de imagens e vídeo.
fonte