Одним из самых задаваемых вопросов у начинающих пользователей является вопрос о количестве постов, опубликованных в определенной категории. Этот вопрос решается всего одной строчкой кода:
category_count; ?>
Достаточно знать только ID категории, и, оперируя некоторыми параметрами функции get_category, можно выудить множество полезных данных об этой категории:
- term_id – ID категории
- count – количество постов в категории
- parent – ID родительской категории
- slug – ярлык категории (используется для формирования ссылок)
- name – название категории (то, как вы назвали категорию)
- description – описание категории
В качестве примера давайте выведем список всех категорий с количество постов в каждой из них:
<?php $categories = get_the_category(); $separator = ' / '; $output = ''; if($categories){ foreach($categories as $category) { $output .= '<a target="_blank" rel="nofollow" href="">term_id ).'" title="' . esc_attr( sprintf( __( "Все посты в категории %s" ), $category->name ) ) . '">'.$category->cat_name.' ('.$category->category_count.')</a>'.$separator; } echo trim($output, $separator); } ?>
Этот код выведет список категорий, в котором каждая категория будет ссылкой на страницу постов, опубликованных в ней, с количеством постов. Все категории отделяются друг от друга разделителем:
категория 1 (количество постов) / категория 2 (количество постов) / категория 3 (количество постов) / ... / категория последняя (количество постов)
Для лучшего восприятия ссылок их снабжают не только описанием, но и картинками. К ссылке на каждую категорию тоже можно добавить свою картинку. Для этого прибегнем к небольшой хитрости — создадим для каждой категории небольшую картинку. Название этой картики должно быть вида:
ID.jpg
ID — это ID категории, по этому значению картинка будет сопоставляться определенной категории. Расположите эти картинки в папке category_images на своем сайте.
После этого код вывода категорий с количеством постов и своей картинкой будет таким:
<?php $categories = get_the_category(); $separator = ' / '; $output = ''; if($categories){ foreach($categories as $category) { $output .= '<a target="_blank" rel="nofollow" href="">term_id ).'" title="' . esc_attr( sprintf( __( "Все посты в категории %s" ), $category->name ) ) . '"><img>cat_ID . '.jpg" alt="' . $category->cat_name . '" />'.$category->cat_name.' ('.$category->category_count.')</a>'.$separator; } echo trim($output, $separator); } ?>
Используя CSS, можно добиться неплохого оформления списка категорий.
Спасибо, заработало