is_object_in_term()

Определяет, связан ли данный объект с каким-либо из указанных терминов
Функция WordPress
INT 2.7.0
WordPress Icon

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

Функция is_object_in_term() определяет, связан ли заданный объект с любыми из заданных терминов. Она проверяет, есть ли у объекта указанный термин в указанной таксономии.

Функция возвращает true, если объект связан с термином, и false, если объект не связан с термином. В случае ошибки ввода функция возвращает объект WP_Error.

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

is_object_in_term( int $object_id, string $taxonomy, int|string|int[]|string[] $terms = null ): bool|WP_Error

Функция is_object_in_term() принимает три параметра: $object_id, $taxonomy и $terms. Она проверяет, связан ли объект с указанными терминами в указанной таксономии.

$object_id — обязательный параметр, содержит ID объекта (ID записи, ID ссылки и т. д.).

$taxonomy — обязательный параметр, содержит название таксономии.

$terms — необязательный параметр, содержит ID, имя, слаг или массив таких значений терминов, с которыми нужно проверить связь объекта. По умолчанию равен null.

Функция is_object_in_term() возвращает true, если объект связан с указанными терминами в указанной таксономии. Возвращает false, если объект не связан с указанными терминами. В случае ошибки ввода функция возвращает объект WP_Error.

<?php
$object_id = 123; // ID объекта
$taxonomy = 'category'; // название таксономии
$terms = array(1, 'term', 'slug'); // термины для проверки связи
if ( is_object_in_term( $object_id, $taxonomy, $terms ) ) {
    echo 'Объект связан с указанными терминами.';
} else {
    echo 'Объект не связан с указанными терминами.';
}
?>

В данном примере мы проверяем, связан ли объект с указанными терминами в указанной таксономии. Если объект связан с терминами, выводится сообщение «Объект связан с указанными терминами». Если объект не связан с терминами, выводится сообщение «Объект не связан с указанными терминами».

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

Проверка наличия объекта в определенном термине


/**
 * Проверяет, связан ли объект с определенным термином.
 *
 * @param int    $object_id ID объекта (ID записи, ID ссылки и т. д.).
 * @param string $taxonomy  Название таксономии.
 * @param mixed  $terms     ID, название, слаг термина или массив таких значений для проверки.
 *                          По умолчанию: null.
 * @return bool|WP_Error     Возвращает true, если объект связан с хотя бы одним из указанных терминов,
 *                          иначе возвращает объект WP_Error в случае ошибки ввода.
 */
function is_object_in_term( $object_id, $taxonomy, $terms = null ) {
    // Реализация функции
}

Определение принадлежности объекта к определенному термину


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
$term = 'news'; // Название термина
if ( is_object_in_term( $object_id, $taxonomy, $term ) ) {
    echo 'Объект принадлежит к термину "' . $term . '".';
} else {
    echo 'Объект не принадлежит к термину "' . $term . '".';
}

Проверка связи объекта с термином


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
$terms = array( 'news', 'events' ); // Массив названий терминов
$result = is_object_in_term( $object_id, $taxonomy, $terms );
if ( ! is_wp_error( $result ) ) {
    $term_names = implode( ', ', $terms );
    echo 'Объект связан с терминами: ' . $term_names . '.';
} else {
    echo 'Произошла ошибка при проверке связи объекта с терминами: ' . $result->get_error_message();
}

Определение наличия объекта в определенном термине


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
if ( is_object_in_term( $object_id, $taxonomy ) ) {
    echo 'Объект принадлежит к хотя бы одному термину таксономии "' . $taxonomy . '".';
} else {
    echo 'Объект не принадлежит ни к одному термину таксономии "' . $taxonomy . '".';
}

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

Как проверить, связан ли объект с определенным термином?

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

Для этого необходимо передать в функцию следующие параметры:

  • $object_id — обязательный параметр, содержащий ID объекта (например, ID записи или ID ссылки);
  • $taxonomy — обязательный параметр, указывающий на название таксономии, с которой нужно проверить связь;
  • $terms — необязательный параметр, содержащий ID, имя, слаг или массив таких значений терминов, с которыми нужно проверить связь. По умолчанию равен null.

Функция возвращает true, если объект связан с хотя бы одним из указанных терминов, иначе возвращает false. В случае ошибки ввода возвращает объект WP_Error.

Пример использования функции:


$object_id = 42;
$taxonomy = 'category';
$term = 'news';
if ( is_object_in_term( $object_id, $taxonomy, $term ) ) {
    echo 'Объект связан с термином';
} else {
    echo 'Объект не связан с термином';
}

Как получить список терминов, с которыми связан объект?

Для получения списка терминов, с которыми связан заданный объект, можно использовать функцию is_object_in_term() без указания параметра $terms.

Пример использования функции:


$object_id = 42;
$taxonomy = 'category';
$terms = is_object_in_term( $object_id, $taxonomy );
if ( ! is_wp_error( $terms ) ) {
    echo 'Объект связан с терминами: ';
    foreach ( $terms as $term ) {
        echo $term->name . ', ';
    }
} else {
    echo 'Произошла ошибка: ' . $terms->get_error_message();
}

Как проверить, связан ли объект с любым из нескольких терминов?

Для проверки, связан ли заданный объект с любым из нескольких терминов, необходимо передать в функцию is_object_in_term() массив значений параметра $terms.

Пример использования функции:


$object_id = 42;
$taxonomy = 'category';
$terms = array( 'news', 'events', 'updates' );
if ( is_object_in_term( $object_id, $taxonomy, $terms ) ) {
    echo 'Объект связан с одним из указанных терминов';
} else {
    echo 'Объект не связан ни с одним из указанных терминов';
}

Как проверить, связан ли объект с термином по его ID?

Для проверки, связан ли заданный объект с термином по его ID, необходимо передать в функцию is_object_in_term() параметр $terms в виде числа.

Пример использования функции:


$object_id = 42;
$taxonomy = 'category';
$term_id = 5;
if ( is_object_in_term( $object_id, $taxonomy, $term_id ) ) {
    echo 'Объект связан с указанным термином';
} else {
    echo 'Объект не связан с указанным термином';
}

Как проверить, связан ли объект с термином по его названию?

Для проверки, связан ли объект с термином по его названию, используйте функцию is_object_in_term(). Передайте в нее ID объекта, название таксономии и название термина.


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
$term_name = 'My Term'; // Название термина
$is_in_term = is_object_in_term( $object_id, $taxonomy, $term_name );
if ( $is_in_term ) {
    echo 'Объект связан с термином.';
} else {
    echo 'Объект не связан с термином.';
}

Как проверить, связан ли объект с термином по его слагу?

Для проверки, связан ли объект с термином по его слагу, используйте функцию is_object_in_term(). Передайте в нее ID объекта, название таксономии и слаг термина.


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
$term_slug = 'my-term'; // Слаг термина
$is_in_term = is_object_in_term( $object_id, $taxonomy, $term_slug );
if ( $is_in_term ) {
    echo 'Объект связан с термином.';
} else {
    echo 'Объект не связан с термином.';
}

Как проверить, связан ли объект с термином по нескольким ID, названиям или слагам?

Для проверки, связан ли объект с термином по нескольким ID, названиям или слагам, используйте функцию is_object_in_term(). Передайте в нее ID объекта, название таксономии и массив с ID, названиями или слагами терминов.


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
$terms = array( 1, 'term1', 'term2' ); // Массив с ID, названиями или слагами терминов
$is_in_term = is_object_in_term( $object_id, $taxonomy, $terms );
if ( $is_in_term ) {
    echo 'Объект связан с одним из терминов.';
} else {
    echo 'Объект не связан ни с одним из терминов.';
}

Как обработать ошибку при использовании функции is_object_in_term()?

При использовании функции is_object_in_term() возможны ошибки. Для обработки ошибки можно использовать объект WP_Error.


$object_id = 123; // ID объекта
$taxonomy = 'category'; // Название таксономии
$term_name = 'My Term'; // Название термина
$result = is_object_in_term( $object_id, $taxonomy, $term_name );
if ( is_wp_error( $result ) ) {
    $error_message = $result->get_error_message();
    echo 'Произошла ошибка: ' . $error_message;
} else {
    $is_in_term = $result;
    if ( $is_in_term ) {
        echo 'Объект связан с термином.';
    } else {
        echo 'Объект не связан с термином.';
    }
}

Функция is_object_in_term() позволяет проверить, связан ли объект с определенным термином в указанной таксономии. Она принимает ID объекта, название таксономии и ID, название или слаг термина. Функция возвращает true, если объект связан с термином, и false, если нет. В случае ошибки, функция возвращает объект WP_Error.

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

  • Функция get_object_taxonomies(): Возвращает массив имен таксономий, связанных с указанным типом объекта.
  • Функция get_object_term_cache(): Возвращает кэш терминов, связанных с указанным объектом.
  • Функция wp_get_object_terms(): Возвращает термины, связанные с указанным объектом и таксономией.
  • Функция wp_set_object_terms(): Устанавливает термины для указанного объекта и таксономии.
  • Функция wp_remove_object_terms(): Удаляет термины из указанного объекта и таксономии.
  • Хук get_object_terms: Применяется для изменения списка терминов, связанных с указанным объектом и таксономией.
Обсуждение