get_the_category()
Получает массив данных о категориях относящихся к указанному посту.
Функцию можно использовать за пределами Цикла WordPress, если указать ID поста.
Результат работы этой функции кэшируется.
Хуки из функции
Возвращает
WP_Term[]
. Массив WP_Term объектов с данными о каждой категории, которая относится к посту. Отдельный объект для каждой категории. Каждый объект WP_Term также дополнен свойствами, генерируемыми функцией _make_cat_compat().
Использование
get_the_category( $post_id );
- $post_id(число)
- ID поста, категории которого нужно получить.
По умолчанию: $post->ID
Примеры
#1 Категории поста за пределами цикла
Пример, как получить категории поста за пределами Цикла WordPress:
global $post; $categories = get_the_category( $post->ID ); var_dump( $categories );
Данные, которые содержит каждый объект категории (все свойства смотрите у класса WP_Term и функции _make_cat_compat()):
$cat = get_the_category($post->ID); // ID категории $cat->term_id // Название категории $cat->name // Ярлык категории $cat->slug // Описание категории (задается на странице редактирования категории) $cat->description // ID родительской категории $cat->parent // Количество записей в категории $cat->count
#2 Получение данных первой категории из массива
Показать только имя первой категории..
В этом примере мы получаем первый элемент массива ([0]) $categories.
$categories = get_the_category(); if ( ! empty( $categories ) ) { echo esc_html( $categories[0]->name ); }
Сделайте первую категорию ссылкой на страницу категории:.
$categories = get_the_category(); if ( ! empty( $categories ) ) { echo '<a href="' . esc_url( get_category_link( $categories[0]->term_id ) ) . '">' . esc_html( $categories[0]->name ) . '</a>'; }
#3 Название первой категории
Показать название только первой категории (если пост относится к нескольким категориям):
$category = get_the_category(); echo $category[0]->name;
#4 Выведем картинку для каждой категории
Этот пример показывает как можно создать картинку к каждой категории, в атрибуте alt будет указано название категории. Картинки должны иметь названия такие же как и ID категорий (12.jpg) и лежать в корне сайта в папке images. Код нужно использовать внутри Цикла:
foreach( get_the_category() as $category ){ echo '<img src="http://example.com/images/' . $category->term_id . '.jpg" alt="' . $category->name . '" />'; }
#5 Вывод ссылок на рубрики поста
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 ) // Название рубрики ); }
#6 Вывод ссылок на рубрики поста через запятую
$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 );
#7 Пример того что возвращает функция
$categories = get_the_category(); print_r( $categories );
Result:
Список изменений
С версии 0.71 | Введена. |