问题描述
我使用以下模板代码来显示附件链接:
$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()
和 wp_get_attachment_url()
的 substr()
),并调用 filesize()
,但这似乎凌乱,我只是想知道是否有一种方法内置到 WordPress 。
最佳解决方案
据我所知,WordPress 没有内置这个,我只会做:
filesize( get_attached_file( $attachment->ID ) );
次佳解决方案
我以前在 functions.php 中使用了这个文件,以容易读取的格式显示文件大小:
function getSize($file){
$bytes = filesize($file);
$s = array('b', 'Kb', 'Mb', 'Gb');
$e = floor(log($bytes)/log(1024));
return sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));}
然后在我的模板中:
echo getSize('insert reference to file here');
第三种解决方案
要找到通过自定义字段插件添加的文件的大小,我做到了:
$fileObject = get_field( 'file ');
$fileSize = size_format( filesize( get_attached_file( $fileObject['id'] ) ) );
只需确保将自定义字段的”Return Value” 设置为”File Object” 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。