get_the_category — функция для вывода категорий (рубрик) к указанному посту

Функция возвращает массив объектов (в данном случае рубрики, в которых находится пост с указанным в параметрах ID).

Короче говоря в итоге вы получаете все рубрики поста и информацию о них.

Использование

get_the_category( $post_id = false )

Параметры

$post_id
(целое) ID поста, если функция используется в цикле, этот параметр необязателен.

Возвращает массив объектов WP_Term

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

В скобках указаны эквивалентные варианты.

  • term_ID (cat_ID) — ID рубрики,
  • name (cat_name) — название рубрики,
  • slug (category_nicename) — ярлык категории,
  • description (category_description) — описание категории,
  • parent (category_parent) — ID родительской категории,
  • count (category_count) — количество записей (постов) в рубрике,
  • term_group — значение колонки term_group в базе данных,
  • term_taxonomy_id — ID таксономии, у рубрик он равен 1,
  • taxonomy — название таксономии, для рубрик — category,
  • object_id — ID объекта;

Примеры

Выводим список рубрик со ссылками

Переменной $post_id задайте своё значение, либо просто удалите её оттуда, если используете этот код внутри цикла.

Для получения URL рубрики используем функцию get_category_link().

$categories = get_the_category( $post_id );
if( $categories ){
	echo '<ul>';
	foreach( $categories as $category ) {
		echo '<li><a href="' . get_category_link($category->term_id) . '">' . $category->cat_name . '</a></li>';
	}
	echo '</ul>';
}

Выводим список рубрик к текущему посту через запятую

Функция trim() нужна для удаления каких-либо символов по краям строки, в данном случае запятую с пробелом.

$categories = get_the_category();
if( $categories ){
	foreach( $categories as $category ) {
		$out .= '<a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a>, ';
	}
	echo trim($out, ', ');
}

Указываем ссылку только на первую рубрику, в которой находится пост

К каждому объекту массива $categories можно обратиться по порядковому номеру, нумерация начинается с нуля.

$categories = get_the_category(); 
if( $categories[0] ) {
	echo '<a href="' . get_category_link( $categories[0]->term_id ) . '">' . $categories[0]->name . '</a>';
}

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 18

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал