get_the_terms()
Отримує елементи таксономії (терміни), які відносяться до зазначеного поста (запису).
Ця функція може бути використана всередині циклу WordPress. Або їй потрібно передати ID посту, елементи таксономії якого потрібно отримати.
Функція повністю ідентична get_the_terms .
Функція отримає лише терміни (елементи таксономії), які галочками позначені сторінці редагування записи.
Тобто. у такому разі функція отримає лише зазначені терміни.
wp_get_object_terms()
(дуже повільно) | 50000 разів – 1.66 сек
(швидко) |
PHP 7.1.2, WP 4.8
Хуки з функції
Використання
get_the_terms($post, $taxonomy);
-
$post
(число/WP_Post) (обов’язковий) - ID або об’єкт запису, терміни (елементи таксономії) якого потрібно отримати.
-
$taxonomy
(рядок) (обов’язковий) - Назву таксономії, терміни якої потрібно отримати.
Приклади
#1 Виведемо посилання на елементи таксономії ‘my_tax’, які стосуються посту 10
$ cur_terms = get_the_terms (10, 'my_tax'); if( is_array( $cur_terms ) ){ foreach( $cur_terms as $cur_term ){ echo '<a href="'. get_term_link( $cur_term->term_id, $cur_term->taxonomy ) .'">'. $cur_term->name .'</a>,'; } }
Те саме можна зробити всередині Цикл WordPress:
Для кожного посту будуть виведені пов’язані терміни (як позначки). Для цього вкажемо ID посту динамічно ( $post->ID ):
$cur_terms = get_the_terms( $post->ID, 'my_tax' ); if( is_array( $cur_terms ) ){ foreach( $cur_terms as $cur_term ){ echo '<a href="'. get_term_link( $cur_term->term_id, $cur_term->taxonomy ) .'">'. $cur_term->name .'</a>,'; } }
#2 Отримаємо лише перший термін
Допустимо, ми отримали терміни запису і нам потрібно взяти дані лише одного терміна (елемента таксономії). Але функція повертає масив об’єктів (термінів). Приклад нижче показує, як витягнути перший термін з масиву.
$terms = get_the_terms( $post->ID, 'my_tax' ); if( $terms ){ $ term = array_shift ($ terms); // тепер можна вивести назву терміна echo $term->name; }
#3 Отримує термін верхнього рівня для зазначеного або поточного посту в циклі
Це окрема функція з урахуванням get_the_terms()
/** * Отримує термін верхнього рівня для зазначеного або поточного посту в циклі. * * @param string $taxonomy Назва таксономії * @param int/object $post_id ID або об'єкт посту * * @return string/wp_error Об'єкт терміна або false */ function get_top_term( $taxonomy, $post_id = 0 ){ isset( $post_id->ID ) && $post_id = $post_id->ID; ! $post_id && $post_id = get_the_ID(); $terms = get_the_terms($post_id, $taxonomy); if( ! $terms || is_wp_error( $terms ) ){ return $terms; } // Тільки перший $ term = array_shift ($ terms); // Знайдемо ТОП $parent_id = $term->parent; while( $parent_id ){ $term = get_term_by( 'id', $parent_id, $term->taxonomy ); $parent_id = $term->parent; } return $term; }
Використання:
$top_term = get_top_term( 'category'); echo $top_term->name;
список змін
З версії 2.5.0 | Введено. |