Суть задачи стояла в том что нужно вывести родительскую таксономию, дочерней таксономии, которой принадлежит кастомный тип поста, на странице самого поста. Т.е. мы имеем пост, назовем его «professional», он принадлежит к подкатегории «уборка», подкатегория «уборка» является дочерней категории «услуги». Нам нужно на странице поста вывести категорию к которой принадлежит пост и ее родительскую категорию.
Итак, код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | add_action( 'taxonomy_hierarchy_staff', 'taxonomy_hierarchy' ); function taxonomy_hierarchy() { global $post; $taxonomy = 'professional'; $terms = wp_get_post_terms( $post->ID, $taxonomy ); foreach ( $terms as $term ) { if ($term->parent != 0) { $child_term = $term; $child_id = $child_term->term_id; $ancestors = get_ancestors( $child_id, 'professional' ); echo '<ul class="list-serv">'; foreach ( $ancestors as $parent_tax ) { $taxonomy = 'professional'; $term = get_term( $parent_tax, $taxonomy ); $name = $term->name; $term_link = get_term_link($parent_tax, 'professional'); echo '<li class="cat-item parent"><a href="'.$term_link.'">'.$name.'</a></li>'; } $term_link_child = get_term_link($child_id, 'professional'); echo '<li class="cat-item child"><a href="'.$term_link_child.'">'.$child_term->name.'</a></li>'; } echo '</ul>'; } } |
Если в двух словах то мы определяем ID дочерней таксономии, и через get_ancestors определяем ID родительской таксономии.
1 | $ancestors = get_ancestors( $child_id, 'professional' ); |
Имея ID, выводим нужные нам данные.
Этот код нужно вставить в файл functions.php вашей темы.
Вызов функции можно осуществить из любого места шаблона:
1 | do_action( 'taxonomy_hierarchy_staff' ); |