Функция возвращает массив объектов элементов таксономий WP_Term
в случае успеха, пустой массив, если терминов по заданному критерию не найдено или же объект ошибки WP_Error, если таксономия $taxonomy
не существует.
Если вы получаете термины поста в цикле, и если вам не нужно передавать произвольные параметры в виде массива $args
, рассмотрите вариант использования функции get_the_terms(), потому что она использует кэширование и работает быстрее и эффективнее.
wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array() )
Параметр fields позволяет задать, что именно должна возвращать функция, по умолчанию он равен значению all
– массив объектов WP_Term
.
Глянем другие варианты в коде:
// Получаем массив объектов элементов таксономии "true_taxonomy". $term_list = wp_get_post_terms( $post->ID, 'true_taxonomy', array( 'fields' => 'all' ) ); print_r( $term_list ); /* в этой ситуации в результате мы получаем массив объектов: Array( [0] => stdClass Object( [term_id] => 1 [name] => Италия [slug] => italia [term_group] => 0 [term_taxonomy_id] => 1 [taxonomy] => true_taxonomy [description] => [parent] => 0 [count] => 75 ) [1] => stdClass Object( [term_id] => 4 [name] => Эстония [slug] => estonia [term_group] => 0 [term_taxonomy_id] => 4 [taxonomy] => true_taxonomy [description] => [parent] => 0 [count] => 51 ) ) */ // Получаем массив из названий элементов таксономии "true_taxonomy". $term_list = wp_get_post_terms( $post->ID, 'true_taxonomy', array( 'fields' => 'names' ) ); print_r( $term_list ); /* результат будет выглядеть так, да, обычный одномерный массив из названий элементов таксономий Array( [0] => Италия [1] => Эстония ) */ // Получаем массив ID элементов таксономии "true_taxonomy". $term_list = wp_get_post_terms( $post->ID, 'true_taxonomy', array( 'fields' => 'ids' ) ); print_r( $term_list ); /* Массив из ID элементов таксономий Array ( [0] => 1 [1] => 4 ) */
С маркированным списком всё супер-легко:
$term_list = wp_get_post_terms( $post->ID, 'true_taxonomy' ); if( $term_list ) { echo '<ul>'; foreach( $term_list as $term ) { echo '<li><a href="' . get_term_link( $term ) . '">' . $term->name . '</a></li>'; } echo '</ul>'; }
Чуть поинтереснее в ситуации, когда нужно вывести элементы таксономи через запятую:
$term_list = wp_get_post_terms( $post->ID, 'true_taxonomy' ); if( $term_list ) { $terms = array(); foreach( $term_list as $term ) { $terms[] = '<a href="' . get_term_link( $term ) . '">' . $term->name . '</a>'; } echo join( ', ', $terms ); }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.