统计上传到网站的图片数量

时间:2017-03-10 作者:faq

我之所以提到“完整网站”,是因为我不需要一篇文章的附件数量(正如许多问题所回答的那样)。我基本上需要一个函数,返回在网站上上传的图像数(附加和未附加),不包括非图像文件。

我做了一些研究,但没有任何直接的函数只计算图像。最简单的方法是什么?

2 个回复
最合适的回答,由SO网友:birgire 整理而成

有一个方便的built-in function, 即wp_count_attachments().

我们可以使用wp_count_attachments( $mime_type = \'image\' ) 返回如下对象:

stdClass Object
(
    [image/gif] => 9
    [image/jpeg] => 121
    [image/png] => 20
    [image/x-icon] => 6
    [trash] => 0
)
因此,我们可以使用一行:

$count = array_sum( (array) wp_count_attachments( $mime_type = \'image\' ) );
获取图像总数。

SO网友:Paul \'Sparrow Hawk\' Biron

我知道的最简单的方法是:

global $wpdb ;

$sql = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = \'attachment\'" ;

$count = (int) $wpdb->get_var ($sql) ;
您也可以使用WP\\u查询,但这样做的成本更高:

$args = array (
    \'post_type\' => \'attachment\',
    \'post_status\' => \'inherit\',
    \'posts_per_page\' => 0,
    ) ;
$attatchments = new WP_Query ($args) ;

$count = $attatchments->found_posts ;
note: 背景\'posts_per_page\' => 0 和阅读found_posts 在像这样的情况下使用WP\\u查询是一种优化,我几天前刚刚从WPSE上的另一个问题的答案中学到了这一点。。。我不记得是哪一个问题,否则我会把这个提示归功于作者。

相关推荐

Host images only on CDN

我开发了一个wordpress网站,该网站托管在AWS上。该网站运行良好,但由于我希望它成为一个电子商务网站,将有大量的图像。AWS的托管帐户仅提供30 GB的存储空间。所以我想host images completely on an external CDN off my server. 但最近对CDN的搜索导致我只缓存CDN,我希望只在其他服务器上托管图像。有线索吗?