Функция has_term() в WordPress: синтаксис, примеры, возвращаемые значения

# HAS_TERM() │ WP 3.1.0

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

## Что такое термины?

Те��мины — это категории, теги или другие группы, которые применяются к записям в WordPress. Эта функция проверяет переданные термины по их ID, названиям и слагам.

- Если термины указаны как числа, то проверка будет проводиться только по их ID.
- Если термины не указаны, функция просто определит, есть ли у записи какие-либо термины.

#### Используется в:

- has_category()
- has_tag()
- in_category()
- has_post_format()

### Возвращаемые значения

- **true**: если у текущей записи есть хотя бы один из указанных терминов (или любые термины, если не указано ничего).
- **false**: иначе.

## Синтаксис

```php
has_term( $term, $taxonomy, $post );
  • $term (string|int|array): Название/ID/слик термина или массив терминых для проверки. По умолчанию: пустая строка.
  • $taxonomy (string): Имя таксономии. По умолчанию: пустая строка.
  • $post (int|WP_Post): Запись для проверки. По умолчанию: текущая запись.

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

Проверка наличия терминов в таксономии 'video'

if( has_term( '', 'video' ) ) {
    echo "У записи есть термины в таксономии video";
}

Проверка наличия тегов

Чтобы лучше понять предыдущее использование, его можно записать так:

if( has_term( '', 'post_tag' ) ) {
    echo "У текущей записи есть теги";
}

В этом примере мы просто проверяем, есть ли у текущей записи стандартные теги WordPress.

Проверка конкретного термина

Проверим, есть ли у текущей записи термин 'triller' в таксономии 'video':

if( has_term( 'triller', 'video' ) ) {
    echo "У записи есть термин triller в таксономии video";
}

Проверка нескольких терминов

Проверим, относится ли запись с ID 59 к терминам 'comedy' или 'history' в таксономии 'video':

if( has_term( ['comedy','history'], 'video', 59 ) ) {
    echo "У записи с ID=59 есть термины comedy или history в таксономии video";
}

Код функции has_term()

Вот пример реализации функции has_term():

function has_term( $term = '', $taxonomy = '', $post = null ) {
    $post = get_post( $post );

    if ( ! $post ) {
        return false;
    }

    $r = is_object_in_term( $post->ID, $taxonomy, $term );
    if ( is_wp_error( $r ) ) {
        return false;
    }

    return $r;
}

Полезные функции, связанные с терминами

  • category_exists()
  • get_term()
  • get_terms()
  • tag_exists()

Эти функции помогут вам работать с терминами и таксономиями в WordPress, облегчая управление записями и их категориями.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *