我正在使用以下模板代码显示附件链接:

$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中内置的方法。

评论

有趣的是,后端没有功能显示详细信息或列表中的文件大小。机票#8739

#1 楼

据我所知,WordPress对此没有任何内置功能,我会这样做:

filesize( get_attached_file( $attachment->ID ) );

评论


啊-看起来比把wp_upload_dir()等弄乱还好!

– Bobby Jack
2010年8月18日在9:18

我只需要获取一个帖子附件的文件大小。我在post_parent中使用了get_the_ID()。但没有用。

– KarSho
13年3月28日在11:20

这样做很好,但要注意,如果get_attached_file返回false,则filesize将发出警告。您应该添加检查以确保get_attached_file返回存在的文件。

– Alex Standiford
19/12/7在12:53



#2 楼

我以前在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))));}


评论


无需创建新功能。 WP有两个内置的核心。 size_format()和wp_convert_bytes_to_hr()

–斯科特
2011-10-27 14:01

似乎已不推荐使用wp_convert_bytes_to_hr(),而推荐使用size_format()

– davemac
2012年5月14日下午2:35

#3 楼

我会做的:

$attachment_filesize = filesize( get_attached_file( $attachment_id ) );


或者具有可读的大小,例如423.82 KB

$attachment_filesize = size_format( filesize( get_attached_file( $attachment_id ) ), 2 );


参考文献:
get_attached_file(),
filesize(),
size_format()

注意:定义您的$attachment_id

#4 楼

有一个更简单的解决方案,可以读取文件大小。

$attachment_id  = $attachment->ID;
$attachment_meta = wp_prepare_attachment_for_js($attachment_id);

echo $attachment_meta['filesizeHumanReadable'];


评论


一切都有wp_ funktion ;-)

–托马斯·费林格
17年11月6日在9:13

应该是公认的答案

–user1676224
19年1月16日在16:34

#5 楼

要查找通过自定义字段插件添加的文件的大小,我执行了以下操作:

$fileObject = get_field( 'file ');
$fileSize   = size_format( filesize( get_attached_file( $fileObject['id'] ) ) );


只需确保将自定义字段的“返回值”设置为“文件”目的”。

#6 楼

我一直在寻找相同的东西,并找到了此WordPress内置解决方案。

评论


问题是关于文件大小的字节数,而不是图像尺寸。

–稀有
2011年7月5日在14:26

h,我很想念。 :-)

–Vayu
2011年8月26日在12:57

#7 楼

至少对于音频而言,文件大小另存为“元数据”。