私は「多くの質問で答えられるように」私が1つの記事に添付ファイルの数を必要としないので「完全なウェブサイト」に言及します。私は基本的にウェブサイトにアップロードされた画像の数(添付ファイルと未添付ファイル)を返す関数が必要です。ただし、非画像ファイルは除きます。
私はいくつかの研究をしましたが、画像だけを数える直接的な機能はありません。これを行うための最も簡単な方法は何ですか?
便利な 組み込み関数 、つまり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' ) );
画像の総数について。
私が知っている最も簡単な方法は次のとおりです。
global $wpdb ;
$sql = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'attachment'" ;
$count = (int) $wpdb->get_var ($sql) ;
WP_Queryを使うこともできますが、もっと高価です。
$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_Queryを使用する場合の最適化です。ここで数日前にWPSEで別の質問に対する回答から学んだばかりです。さもなければ、私は作者にチップを貸します。