WordPress: как получить термины таксономии публикаций

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

Метод 1. Использование get_the_terms()
Функция get_the_terms()извлекает термины для конкретной публикации и таксономии. Вот пример того, как его можно использовать:

$terms = get_the_terms( get_the_ID(), 'taxonomy_name' );
if ( $terms && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>';
    }
}

Метод 2: использование wp_get_post_terms()
Функция wp_get_post_terms()извлекает термины для конкретной публикации и таксономии. Вот пример:

$terms = wp_get_post_terms( get_the_ID(), 'taxonomy_name' );
if ( $terms && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>';
    }
}

Метод 3: использование get_the_taxonomies()
Функция get_the_taxonomies()извлекает все таксономии, связанные с публикацией. Вот пример:

$taxonomies = get_the_taxonomies( get_the_ID() );
if ( $taxonomies ) {
    foreach ( $taxonomies as $taxonomy ) {
        $terms = get_the_terms( get_the_ID(), $taxonomy );
        if ( $terms && ! is_wp_error( $terms ) ) {
            foreach ( $terms as $term ) {
                echo '<a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>';
            }
        }
    }
}

Метод 4: использование wp_get_object_terms()
Функция wp_get_object_terms()извлекает термины для определенного объекта публикации и таксономии. Вот пример:

$terms = wp_get_object_terms( get_the_ID(), 'taxonomy_name' );
if ( $terms && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<a href="' . esc_url( get_term_link( $term ) ) . '">' . $term->name . '</a>';
    }
}