J'utilise le code de modèle suivant pour afficher les liens en pièce jointe:
$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);
}
mais après le lien, j'ai besoin d'afficher la taille du fichier. Comment puis-je faire ceci?
Je suppose que je pourrais déterminer le chemin du fichier (via wp_upload_dir()
et un substr()
de wp_get_attachment_url()
) et appeler, filesize()
mais cela semble compliqué, et je me demande simplement s'il existe une méthode intégrée à WordPress.
templates
attachments
Bobby Jack
la source
la source
Réponses:
Autant que je sache, WordPress n'a rien d'intégré à cela, je voudrais juste faire:
filesize( get_attached_file( $attachment->ID ) );
la source
wp_upload_dir()
etc.!J'ai déjà utilisé cela dans functions.php pour afficher la taille du fichier dans un format facilement lisible:
Et puis dans mon template:
la source
size_format()
etwp_convert_bytes_to_hr()
Je ferais :
Ou avec une taille lisible comme
423.82 KB
Références : get_attached_file () , filesize () , size_format ()
Remarque: Définissez votre
$attachment_id
la source
Pour trouver la taille d'un fichier ajouté via le plugin de champs personnalisés, j'ai fait ceci:
Assurez-vous simplement que vous définissez la "Valeur de retour" du champ personnalisé sur "Objet de fichier".
la source
Il existe une solution plus simple, qui consiste à obtenir des tailles de fichiers lisibles par l’homme.
la source
Je cherchais la même chose et ai trouvé cette solution intégrée WordPress.
Voir plus à
wp_get_attachment_metadata()
la source
Pour l’audio au moins, la taille du fichier est enregistrée en tant que "métadonnées".
Ce n'est peut- être pas le cas pour les images et les vidéos.
la source