Как вывести общее количество изображений в блоге

Как вывести общее количество изображений в блоге | n-wp.ru Настройки
Пример простого кода, выводящего общее количество изображений, размещенных на всех страницах блога. Будет полезен тем, кто ведет фотоблог.

Если вы задумали вести фотоблог, в котором главным содержимым являются изображения, то вы можете использовать общее количество изображений, размещенных на страницах блога в качестве рекламы, говорящей самой за себя. Вывести общее количество изображений поможет простой код.

Как вывести общее количество изображений в блоге

Для того, чтобы подсчитать количество изображений на страницах блога, нужно создать функцию. Для этого вставьте в файл functions.php следующий код:

function img_count(){
	$query_img_args = array(
		'post_type' => 'attachment',
		'post_mime_type' =>array(
                		'jpg|jpeg|jpe' => 'image/jpeg',
                		'gif' => 'image/gif',
				'png' => 'image/png',
				),
		'post_status' => 'inherit',
		'posts_per_page' => -1,
		);
	$query_img = new WP_Query( $query_img_args );
	echo $query_img->post_count;
}

Эта функция считает количество изображений с расширениями jpg, jpeg, jpe, gif и png. Теперь в нужном вам месте шаблона остается только вывести результат работы этой функции:

</pre>
<p>Иногда я пользуюсь и более простой функцией, которую вставляю всю целиком непосредственно в шаблон:</p>
<pre>get_var("SELECT COUNT(ID) FROM {$wpdb->prefix}posts WHERE post_type = 'attachment'"); echo $total_attachments; ?>

Ее отличие в том, что она считает вообще все изображения без разбора, даже с расширениями bmp и tiff.

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Otshelnik-fm

    А не подскажете как посчитать у конкретной записи количество картинок?

    Нужно для вывода в анонсе

    Ответить
    1. <?php echo $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_parent = '$post->ID' AND post_type = 'attachment'" ); ?>

      Вставлять внутри цикла

      while (have_posts())...

      .

      Ответить