3 способа узнать текущую категорию в WP

В зависимости от ситуации, существует 3 способа с помощью которых можно узнать текущую категорию в WordPress.

Способ 1. Через get_queried_object().
Способ 2. Через get_the_category().
Способ 3. Через wp_get_post_terms().

 

Способ 1. Через GET_QUERIED_OBJECT()

Данный способ подходит для ситуации когда мы находимся на странице категорий. Там где используется шаблон archive.php.

Пример

<?php
$category = get_queried_object();
$current_cat_id = $category->term_id;
$current_cat_name = $category->name;
?>

 

Способ 2. Через GET_THE_CATEGORY()

Данный способ подходит когда нам нужно узнать текущую категорию поста внутри цикла или в кастомной функции. Для этого, функции get_the_category() нужно передать ID текущего поста.

get_the_category() — Получает массив c данными о категориях поста. Работает на основе get_the_terms().

Пример 1 - Получим ID и Имя первой категории поста

<?php
$category = get_the_category($post->ID);
$current_cat_id = $category[0]->cat_ID;
$current_cat_name = $category[0]->name;
?>

Пример 2 -  Выведем ID и Имя всех категорий поста

<?php
$category = get_the_category($post->ID);
foreach ($category as $cat) {
 echo $cat->term_id;
 echo $cat->name;
}
?>

 

Способ 3. Через GET_THE_TERMS()

Данный способ тоже самое что и второй. Разница в том что get_the_category предназначен для таксономии Рубрики (Все называют эту таксономию категории). А с помощью get_the_terms можно получить данные любой таксономии. Для этого мы передаем ID поста и название таксономии, в нашем случае это будет category.

Пример 1 - Получим ID и Имя первой категории поста

<?php
$category = get_the_terms($post->ID, 'category');
$current_cat_id = $category[0]->term_id;
$current_cat_name = $category[0]->name;
?>

Пример 2 - Выведем ID и Имя всех категорий поста

<?php
$category = get_the_terms($post->ID, 'category');
foreach ($category as $cat) {
	echo $cat->term_id;
	echo $cat->name;
}
?>

 Вместо category можно указать post_tag и тогда мы получим список данных о метках(тегах) поста.

 

Как узнать категории товара на странице карточки товара

Если вдруг нужно узнать категории товара на странице карточки товара (single-product.php), то тогда воспользуемся кодом:

код

<?php
					global $post;
					$terms = get_the_terms( $post->ID, 'product_cat' );
					foreach ($terms as $term) {
						$product_cat_id = $term->term_id;
						echo $product_cat_id;
					}
					?>

 

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

Для связи со мной можно воспользоваться любой социальной сетью,
или написать на почту:

С моим резюме можно ознакомиться по ссылке:

© 2020-2024 Портфолио Юдина Александра г.Пенза. Все права защищены