Функция get_cat_ID()
используется для получения идентификатора (ID) категории на основе её названия в WordPress. Это полезно, когда необходимо получить ID категории для последующего использования, например, для вывода её описания или фильтрации записей.
get_cat_ID( string $cat_name ): int
Параметры
- $cat_name (string)
Обязательный параметр.
Название категории, идентификатор которой нужно получить.
Возвращаемое значение
- int
Возвращает ID категории в виде целого числа. Если категория с указанным именем не найдена, функция вернёт0
.
Пример 1: Получение ID категории по названию
<?php
$cat_id = get_cat_ID( 'Название категории' );
echo 'ID категории: ' . $cat_id;
?>
Пример 2: Использование ID категории для вывода её описания
Функция category_description()
требует ID категории для вывода её описания. Мы можем получить ID с помощью get_cat_ID()
:
<?php
$cat_name = 'Новости';
$cat_id = get_cat_ID( $cat_name );
echo '<p>Описание категории "' . $cat_name . '": ' . category_description( $cat_id ) . '</p>';
?>
Как работает get_cat_ID()
Функция get_cat_ID()
работает на основе функции get_term_by()
, которая ищет термины (категории) по их названию. В случае успеха возвращается ID категории, в противном случае — 0.
Пример 3: Получение записей из категории с определённым названием
С помощью функции get_cat_ID()
можно получить ID категории и затем использовать его для вывода постов из этой категории с помощью query_posts()
:
<?php
$category_id = get_cat_ID('Новости');
query_posts( 'cat=' . $category_id );
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
the_content();
}
}
wp_reset_query();
?>
Пример 4: Получение ID текущей категории
В WordPress нет отдельной функции для получения ID текущей категории, но можно использовать несколько других функций для этой цели:
<?php
$cat_id = get_query_var( 'cat' ); // Получаем ID текущей категории
$cat_name = get_query_var( 'category_name' ); // Получаем slug (ярлык) текущей категории
$cat_obj = get_category( $cat_id ); // Получаем объект категории
?>
результат:
WP_Term Object
(
[term_id] => 123
[name] => Моя рубрика
[slug] => mycat
[term_group] => 0
[term_taxonomy_id] => 123
[taxonomy] => category
[description] =>
[parent] => 0
[count] => 7
[filter] => raw
)
Также текущую категорию можно получить с помощью функции get_queried_object()
:
<?php
$qo = get_queried_object(); // Получаем объект текущего запроса
if ( ! empty( $qo->term_id ) ) {
echo 'Текущая категория: ' . $qo->name;
}
?>
Заключение
Функция get_cat_ID()
— это полезный инструмент для получения идентификатора категории на основе её названия. Она может использоваться в различных сценариях, таких как фильтрация записей по категории, вывод описания категории и динамическое управление категориями на сайте.