get_the_terms

Позволяет изменить список прикрепленных терминов для данной записи
Хук WordPress
INT 3.1.0
WordPress Icon

Описание хука

Хук «get_the_terms» позволяет определить список терминов, привязанных к определенному посту.

Он вызывается внутри функции get_the_terms() и позволяет изменить или получить список терминов, привязанных к указанному посту.

Хук «get_the_terms» возвращает массив привязанных терминов или объект WP_Error в случае ошибки.

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

apply_filters( 'get_the_terms', WP_Term[]|WP_Error $terms, int $post_id, string $taxonomy )

Хук «get_the_terms» принимает следующие параметры:

  • $terms (тип: WP_Term[]|WP_Error) — Массив привязанных терминов или объект WP_Error в случае ошибки.
  • $post_id (тип: int) — Идентификатор поста.
  • $taxonomy (тип: string) — Название таксономии.
<?php
/**
 * Пример использования хука get_the_terms
 *
 * @param WP_Term[]|WP_Error $terms   Массив привязанных терминов или объект WP_Error в случае ошибки.
 * @param int                $post_id  Идентификатор поста.
 * @param string             $taxonomy Название таксономии.
 * @return WP_Term[]|WP_Error Измененный массив привязанных терминов или объект WP_Error в случае ошибки.
 */
function custom_get_the_terms( $terms, $post_id, $taxonomy ) {
    // Ваш код здесь
    
    // Вернуть измененный массив терминов
    return $terms;
}
add_filter( 'get_the_terms', 'custom_get_the_terms', 10, 3 );

В приведенном примере кода создается функция «custom_get_the_terms», которая принимает массив привязанных терминов, идентификатор поста и название таксономии в качестве параметров.

Внутри функции вы можете изменить массив терминов или выполнить другие действия с ними.

В конце функции возвращается измененный массив терминов.

Затем функция «custom_get_the_terms» добавляется в хук «get_the_terms» с приоритетом 10 и 3 параметрами.

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

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


/**
 * Фильтрует список терминов, привязанных к заданному посту.
 *
 * @param WP_Term[]|WP_Error $terms   Массив привязанных терминов или WP_Error в случае ошибки.
 * @param int                $post_id  ID поста.
 * @param string             $taxonomy Название таксономии.
 * @return WP_Term[]|WP_Error
 */
function filter_get_the_terms( $terms, $post_id, $taxonomy ) {
    // Ваш код для фильтрации списка терминов
    return $terms;
}
add_filter( 'get_the_terms', 'filter_get_the_terms', 10, 3 );

Изменение списка терминов для заданного поста


/**
 * Фильтрует список терминов, привязанных к заданному посту.
 *
 * @param WP_Term[]|WP_Error $terms   Массив привязанных терминов или WP_Error в случае ошибки.
 * @param int                $post_id  ID поста.
 * @param string             $taxonomy Название таксономии.
 * @return WP_Term[]|WP_Error
 */
function filter_get_the_terms( $terms, $post_id, $taxonomy ) {
    // Ваш код для изменения списка терминов
    return $terms;
}
add_filter( 'get_the_terms', 'filter_get_the_terms', 10, 3 );

Добавление нового термина для заданного поста


/**
 * Фильтрует список терминов, привязанных к заданному посту.
 *
 * @param WP_Term[]|WP_Error $terms   Массив привязанных терминов или WP_Error в случае ошибки.
 * @param int                $post_id  ID поста.
 * @param string             $taxonomy Название таксономии.
 * @return WP_Term[]|WP_Error
 */
function filter_get_the_terms( $terms, $post_id, $taxonomy ) {
    // Ваш код для добавления нового термина
    return $terms;
}
add_filter( 'get_the_terms', 'filter_get_the_terms', 10, 3 );

Удаление термина из списка для заданного поста


/**
 * Фильтрует список терминов, привязанных к заданному посту.
 *
 * @param WP_Term[]|WP_Error $terms   Массив привязанных терминов или WP_Error в случае ошибки.
 * @param int                $post_id  ID поста.
 * @param string             $taxonomy Название таксономии.
 * @return WP_Term[]|WP_Error
 */
function filter_get_the_terms( $terms, $post_id, $taxonomy ) {
    // Ваш код для удаления термина из списка
    return $terms;
}
add_filter( 'get_the_terms', 'filter_get_the_terms', 10, 3 );

Получение ошибки при получении списка терминов для заданного поста


/**
 * Фильтрует список терминов, привязанных к заданному посту.
 *
 * @param WP_Term[]|WP_Error $terms   Массив привязанных терминов или WP_Error в случае ошибки.
 * @param int                $post_id  ID поста.
 * @param string             $taxonomy Название таксономии.
 * @return WP_Term[]|WP_Error
 */
function filter_get_the_terms( $terms, $post_id, $taxonomy ) {
    // Ваш код для обработки ошибки
    return $terms;
}
add_filter( 'get_the_terms', 'filter_get_the_terms', 10, 3 );

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

Как получить список терминов, присоединенных к посту?

Для получения списка терминов, присоединенных к определенному посту в WordPress, можно использовать хук get_the_terms. Этот хук фильтрует список терминов, присоединенных к данному посту.

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

  • $terms — массив присоединенных терминов или объект WP_Error в случае ошибки.
  • $post_id — идентификатор поста.
  • $taxonomy — название таксономии.

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


function custom_get_the_terms( $terms, $post_id, $taxonomy ) {
  // Ваш код для изменения списка терминов
  return $terms;
}
add_filter( 'get_the_terms', 'custom_get_the_terms', 10, 3 );

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

Для изменения списка терминов, присоединенных к определенному посту, можно использовать хук get_the_terms. Этот хук позволяет фильтровать и изменять список терминов перед его выводом.

Пример использования хука get_the_terms для изменения списка терминов:


function custom_get_the_terms( $terms, $post_id, $taxonomy ) {
  // Ваш код для изменения списка терминов
  return $terms;
}
add_filter( 'get_the_terms', 'custom_get_the_terms', 10, 3 );

Как добавить новый термин к посту?

Для добавления нового термина к определенному посту в WordPress, можно использовать функцию wp_set_post_terms. Эта функция позволяет присоединить новый термин к посту в указанной таксономии.

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


$post_id = 123; // Идентификатор поста
$taxonomy = 'category'; // Название таксономии
$term_ids = array( 1, 2, 3 ); // Идентификаторы терминов
wp_set_post_terms( $post_id, $term_ids, $taxonomy );

Как удалить термин из поста?

Для удаления термина из поста в WordPress можно использовать функцию wp_remove_object_terms(). Она принимает следующие параметры:

  • $object_id — идентификатор поста, из которого нужно удалить термин.
  • $terms — массив терминов, которые нужно удалить.
  • $taxonomy — название таксономии, к которой относятся термины.

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


$object_id = 42;
$terms = array( 'term1', 'term2' );
$taxonomy = 'category';
wp_remove_object_terms( $object_id, $terms, $taxonomy );

Как изменить порядок терминов в списке?

Для изменения порядка терминов в списке можно использовать фильтр get_terms_orderby. Он позволяет изменить SQL-запрос, используемый для получения терминов. Фильтр принимает следующие параметры:

  • $orderby — текущий параметр сортировки.
  • $args — массив аргументов, переданных в функцию get_terms().

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


add_filter( 'get_terms_orderby', function( $orderby, $args ) {
  if ( $args['taxonomy'] === 'category' ) {
    $orderby = 'name DESC';
  }
  return $orderby;
}, 10, 2 );

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

Для получения только имен терминов, без ссылок, можно использовать фильтр term_links-{$taxonomy}. Он позволяет изменить HTML-код ссылок на термины. Фильтр принимает следующие параметры:

  • $term_links — текущий HTML-код ссылок на термины.
  • $term — объект термина.
  • $taxonomy — название таксономии.

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


add_filter( 'term_links-category', function( $term_links, $term, $taxonomy ) {
  $term_names = wp_list_pluck( $term_links, 'name' );
  $term_links = implode( ', ', $term_names );
  return $term_links;
}, 10, 3 );

Как получить только идентификаторы терминов?

Для получения только идентификаторов терминов, присоединенных к определенному посту, можно использовать хук get_the_terms. Этот хук фильтрует список терминов, присоединенных к заданному посту.

Пример кода:


function get_term_ids($terms, $post_id, $taxonomy) {
    $term_ids = array();
    foreach ($terms as $term) {
        $term_ids[] = $term->term_id;
    }
    return $term_ids;
}
add_filter('get_the_terms', 'get_term_ids', 10, 3);

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

Если вам нужно получить только имена терминов, присоединенных к определенному посту, и разделить их запятыми, вы можете использовать хук get_the_terms.

Пример кода:


function get_term_names($terms, $post_id, $taxonomy) {
    $term_names = array();
    foreach ($terms as $term) {
        $term_names[] = $term->name;
    }
    return implode(', ', $term_names);
}
add_filter('get_the_terms', 'get_term_names', 10, 3);

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

Если вам нужно получить только имена терминов, присоединенных к определенному посту, и отсортировать их по алфавиту, вы можете использовать хук get_the_terms.

Пример кода:


function get_sorted_term_names($terms, $post_id, $taxonomy) {
    $term_names = array();
    foreach ($terms as $term) {
        $term_names[] = $term->name;
    }
    sort($term_names);
    return implode(', ', $term_names);
}
add_filter('get_the_terms', 'get_sorted_term_names', 10, 3);

Хук get_the_terms позволяет фильтровать список терминов, присоединенных к заданному посту. С его помощью вы можете получить только идентификаторы терминов, только имена терминов, разделенные запятыми, или только имена терминов, отсортированные по алфавиту. Этот хук предоставляет гибкость в работе с терминами и позволяет легко настраивать вывод данных в соответствии с вашими потребностями.

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

  • Функция get_the_terms(): возвращает список терминов, привязанных к определенному посту.
  • Функция get_the_term_list(): возвращает отформатированный список терминов, привязанных к определенному посту.
Обсуждение