in_category()

Проверяет, находится ли текущая запись в одной из указанных категорий
Функция WordPress
INT 1.2.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Проверка наличия текущего поста в категории
  4. Определение категории текущего поста
  5. Проверка наличия поста в нескольких категориях
  6. Проверка наличия поста в определенной категории и ее подкатегориях
  7. Проверка наличия поста в категории по ее идентификатору
  8. Вопросы и ответы
  9. Как проверить, находится ли текущий пост в определенной категории?
  10. Как проверить, находится ли текущий пост в нескольких категориях?
  11. Как проверить, находится ли текущий пост в дочерней категории?
  12. Как проверить, находится ли текущий пост в родительской категории?
  13. Как проверить, находится ли текущий пост в определенной категории или ее дочерних?
  14. Как проверить, находится ли текущий пост в определенной категории или ее родительской?
  15. Как проверить, находится ли текущий пост в определенной категории или ее дочерних или родительской?
  16. Как проверить, находится ли текущий пост в категории с определенным идентификатором?
  17. Как проверить, находится ли текущий пост в категории с определенным названием или слагом?
  18. Связанные элементы

Описание функции

Функция in_category() проверяет, находится ли текущий пост в одной из указанных категорий.

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

Функция возвращает логическое значение true, если текущий пост находится в одной из указанных категорий, и false в противном случае.

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

in_category( int|string|int[]|string[] $category, int|WP_Post $post = null ): bool

В данном примере кода функция in_category() принимает два параметра: $category — идентификатор категории, имя категории, слаг категории или массив таких значений, и $post — объект поста, который нужно проверить. По умолчанию используется текущий пост.

  • $category (int|string|int[]|string[]) — Обязательный параметр. Идентификатор категории, имя категории, слаг категории или массив таких значений, с которыми нужно сравнить текущую категорию поста.
  • $post (int|WP_Post) — Необязательный параметр. Объект поста, который нужно проверить. По умолчанию используется текущий пост.

Функция возвращает логическое значение true, если текущий пост находится в одной из указанных категорий, и false в противном случае.


/**
 * Проверяет, находится ли текущий пост в категории "Новости".
 *
 * @param  int|string|int[]|string[] $category Идентификатор категории, имя категории, слаг категории или массив таких значений.
 * @param  int|WP_Post               $post     Объект поста, который нужно проверить.
 * @return bool                                Возвращает true, если текущий пост находится в категории "Новости".
 */
if ( in_category( 'news' ) ) {
    // Код, который будет выполнен, если текущий пост находится в категории "Новости".
} else {
    // Код, который будет выполнен, если текущий пост не находится в категории "Новости".
}

В данном примере кода функция in_category() проверяет, находится ли текущий пост в категории с идентификатором, именем или слагом «news». Если текущий пост находится в этой категории, то выполняется код внутри блока if. Если текущий пост не находится в этой категории, то выполняется код внутри блока else.

Примеры использования

Проверка наличия текущего поста в категории


if ( in_category( 'news' ) ) {
    echo 'Текущий пост находится в категории "Новости".';
} else {
    echo 'Текущий пост не находится в категории "Новости".';
}

В данном примере мы используем функцию in_category() для проверки, находится ли текущий пост в категории «Новости». Если пост находится в указанной категории, то выводится сообщение «Текущий пост находится в категории ‘Новости'». В противном случае выводится сообщение «Текущий пост не находится в категории ‘Новости'».

Определение категории текущего поста


$category = get_the_category();
if ( ! empty( $category ) ) {
    echo 'Текущий пост находится в следующей категории: ' . esc_html( $category[0]->name );
} else {
    echo 'Текущий пост не находится в категориях.';
}

В данном примере мы используем функцию get_the_category() для получения категории текущего поста. Если у поста есть категории, то выводится сообщение «Текущий пост находится в следующей категории: [название категории]». В противном случае выводится сообщение «Текущий пост не находится в категориях».

Проверка наличия поста в нескольких категориях


if ( in_category( array( 'news', 'events' ) ) ) {
    echo 'Текущий пост находится в категориях "Новости" или "События".';
} else {
    echo 'Текущий пост не находится в категориях "Новости" или "События".';
}

В данном примере мы используем функцию in_category() для проверки, находится ли текущий пост в категориях «Новости» или «События». Если пост находится хотя бы в одной из указанных категорий, то выводится сообщение «Текущий пост находится в категориях ‘Новости’ или ‘События'». В противном случае выводится сообщение «Текущий пост не находится в категориях ‘Новости’ или ‘События'».

Проверка наличия поста в определенной категории и ее подкатегориях


if ( in_category( 'news', get_queried_object() ) ) {
    echo 'Текущий пост находится в категории "Новости" или ее подкатегориях.';
} else {
    echo 'Текущий пост не находится в категории "Новости" или ее подкатегориях.';
}

В данном примере мы используем функцию in_category() для проверки, находится ли текущий пост в категории «Новости» или ее подкатегориях. Вторым параметром передаем объект текущей категории с помощью функции get_queried_object(). Если пост находится в указанной категории или ее подкатегориях, то выводится сообщение «Текущий пост находится в категории ‘Новости’ или ее подкатегориях». В противном случае выводится сообщение «Текущий пост не находится в категории ‘Новости’ или ее подкатегориях».

Проверка наличия поста в категории по ее идентификатору


if ( in_category( 5 ) ) {
    echo 'Текущий пост находится в категории с идентификатором 5.';
} else {
    echo 'Текущий пост не находится в категории с идентификатором 5.';
}

В данном примере мы используем функцию in_category() для проверки, находится ли текущий пост в категории с идентификатором 5. Если пост находится в указанной категории, то выводится сообщение «Текущий пост находится в категории с идентификатором 5». В противном случае выводится сообщение «Текущий пост не находится в категории с идентификатором 5».

Вопросы и ответы

Как проверить, находится ли текущий пост в определенной категории?

Для проверки, находится ли текущий пост в определенной категории, можно использовать функцию in_category(). Эта функция принимает два параметра: $category и $post.

Параметр $category может быть ID, названием или слагом категории, а также массивом из этих значений. Параметр $post является необязательным и по умолчанию равен текущему посту.

Функция возвращает логическое значение true, если текущий пост находится в указанной категории, и false в противном случае.


if ( in_category( 'news' ) ) {
    echo 'Текущий пост находится в категории "Новости".';
} else {
    echo 'Текущий пост не находится в категории "Новости".';
}

Как проверить, находится ли текущий пост в нескольких категориях?

Для проверки, находится ли текущий пост в нескольких категориях, можно использовать функцию in_category() с массивом значений параметра $category.


$categories = array( 'news', 'events' );
if ( in_category( $categories ) ) {
    echo 'Текущий пост находится в категориях "Новости" или "События".';
} else {
    echo 'Текущий пост не находится в категориях "Новости" или "События".';
}

Как проверить, находится ли текущий пост в дочерней категории?

Для проверки, находится ли текущий пост в дочерней категории, можно использовать функцию in_category() с параметром $category в виде массива.


$parent_category = 'news';
$child_category = 'local-news';
if ( in_category( array( $parent_category, $child_category ) ) ) {
    echo 'Текущий пост находится в категории "Новости" или "Местные новости".';
} else {
    echo 'Текущий пост не находится в категории "Новости" или "Местные новости".';
}

Как проверить, находится ли текущий пост в родительской категории?

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


if ( in_category( 5 ) ) {
    // Текущий пост находится в родительской категории с ID 5
}

Как проверить, находится ли текущий пост в определенной категории или ее дочерних?

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


if ( in_category( 'news' ) ) {
    // Текущий пост находится в категории с именем "news" или ее дочерних
}

Как проверить, находится ли текущий пост в определенной категории или ее родительской?

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


if ( in_category( array( 5, 'news' ) ) ) {
    // Текущий пост находится в категории с ID 5 или с именем "news" или их родительской
}

Как проверить, находится ли текущий пост в определенной категории или ее дочерних или родительской?

Функция in_category() позволяет проверить, находится ли текущий пост в определенной категории или ее дочерних или родительской.

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

Функция возвращает true, если текущий пост находится в любой из указанных категорий, и false в противном случае.

Как проверить, находится ли текущий пост в категории с определенным идентификатором?

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


$category_id = 5;
if ( in_category( $category_id ) ) {
    echo 'Текущий пост находится в категории с идентификатором 5.';
} else {
    echo 'Текущий пост не находится в категории с идентификатором 5.';
}

Как проверить, находится ли текущий пост в категории с определенным названием или слагом?

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


$category_name = 'News';
if ( in_category( $category_name ) ) {
    echo 'Текущий пост находится в категории "News".';
} else {
    echo 'Текущий пост не находится в категории "News".';
}

Функция in_category() позволяет проверить, находится ли текущий пост в определенной категории или ее дочерних или родительской. Она принимает идентификатор, название или слаг категории и возвращает true, если текущий пост находится в указанной категории, и false в противном случае.

Связанные элементы

  • Функция has_category(): Проверяет, принадлежит ли текущий пост к указанной категории.
  • Функция get_the_category(): Возвращает массив объектов категорий, к которым относится текущий пост.
  • Функция get_category(): Возвращает объект категории по указанному идентификатору, имени или слагу.
  • Хук pre_get_posts: Позволяет изменять параметры запроса перед выполнением запроса к базе данных.
  • Хук the_category: Вызывается при выводе списка категорий текущего поста.
  • Хук get_the_categories: Вызывается при получении списка категорий текущего поста.
  • Класс WP_Query: Используется для выполнения запросов к базе данных WordPress и получения соответствующих результатов.
  • Класс WP_Term_Query: Используется для выполнения запросов к базе данных WordPress и получения соответствующих результатов для терминов (категорий, меток и т. д.).
  • Класс WP_Post: Представляет пост (запись) в WordPress и предоставляет методы для работы с ним.
Обсуждение