Получает массив данных о категориях относящихся к указанному посту.
Функцию можно использовать за пределами Цикла WordPress, если указать ID поста.
get_the_category()
Возвращает
массив объектов с данными о каждой категории, которая относится к посту. Отдельный объект для каждой категории.
Использование
<?php get_the_category( $id ) ?>
$id(число)
ID поста, категории которого нужно получить.
По умолчанию: $post->ID
Примеры
#1 Выведем картинку для каждой категории
Этот пример показывает как можно создать картинку к каждой категории, в атрибуте alt будет указано название категории. Картинки должны иметь названия такие же как и ID категорий (12.jpg) и лежать в корне сайта в папке images. Код нужно использовать внутри Цикла:
foreach( get_the_category() as $category ){
echo '<img src="http://example.com/images/' . $category->cat_ID . '.jpg" alt="' . $category->cat_name . '" />';
}
#2 Название первой категории
Показать название только первой категории (если пост относится к нескольким категориям):
$category = get_the_category();
echo $category[0]->cat_name;
#3 Категории поста за пределами цикла
Пример, как получить категории поста за пределами Цикла WordPress:
global $post;
$categories = get_the_category( $post->ID );
var_dump( $categories );
Данные, которые содержит каждый объект категории:
$cat = get_the_category($post->ID);
// ID категории
$cat->cat_ID
// Название категории
$cat->cat_name
// Альтернативное название категории
$cat->category_nicename
// Описание категории (задается на странице редактирования категории)
$cat->category_description
// ID родительской категории
$cat->category_parent
// Количество записей в категории
$cat->category_count
Чтобы получить ID текущей категории
if (is_category()) {
echo get_queried_object()->term_id;
}
Получаем рубрики произвольных постов используя get_the_terms()
$cur_terms = get_the_terms( $post->ID, 'custom_name' );
foreach( $cur_terms as $cur_term ){
echo '<a href="'. get_term_link( (int)$cur_term->term_id, $cur_term->taxonomy ) .'">'. $cur_term->name .'</a>,'
}
Вывести категорию ссылкой
<?php the_category(', '); ?>
#4 Вывод ссылок на рубрики поста
foreach (get_the_category() as $category) {
printf(
'<a href="%s" class="link link_text">%s</a>', // Шаблон вывода ссылки
esc_url(get_category_link($category)), // Ссылка на рубрику
esc_html($category->name) // Название рубрики
);
}
#5 Вывод ссылок на рубрики поста через запятую
$links = array_map(function ($category) {
return sprintf(
'<a href="%s" class="link link_text">%s</a>', // Шаблон вывода ссылки
esc_url(get_category_link($category)), // Ссылка на рубрику
esc_html($category->name) // Название рубрики
);
}, get_the_category());
echo implode(', ', $links);
Как всегда, кладезь полезной информации wp-kama.ru.