$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中内置的方法。#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
评论
有趣的是,后端没有功能显示详细信息或列表中的文件大小。机票#8739