С некоторым количеством попыток получился такой вот код (возможно что-то не так в нём, жду обоснованной критики).
<div style="border: 1px dashed blue; min-height: 150px;">
<?php
$terms = get_terms( array(
'taxonomy' => array( 'services' ), // название таксономии с WP 4.5
'orderby' => 'parent', // Если указать 'include', то вывод будет на основе 'include'.
'order' => 'ASC',
'hide_empty' => true,
'object_ids' => null,
'include' => array(), // array(181, 184, 185, 188, 186, 187), Если в таком виде (ID термов), то в таком порядке и будет вывод.
'exclude' => array(),
'exclude_tree' => array(),
'number' => '',
'fields' => 'all',
'count' => false,
'slug' => '',
'parent' => '',
'hierarchical' => false,
'child_of' => 138, //ID дочки
'get' => '', // all - выводит все термины
'name__like' => '',
'pad_counts' => false,
'offset' => '',
'search' => '',
'cache_domain' => 'core',
'name' => '', // str/arr поле name для получения термина по нему. C 4.2.
'childless' => false, // true не получит (пропустит) термины у которых есть дочерние термины. C 4.2.
'update_term_meta_cache' => true, // подгружать метаданные в кэш
'meta_query' => '',
) );
foreach( $terms as $term ){
echo '<div style="position:relative;"><ul class="taxonomy_uslugi_wrapper">'
. '<li><h2><a href="'. get_term_link( $term ).'">'.$term->name.'</a></h2></li>';
echo '<ul class="uslugi_term">';
$query = new WP_Query( array(
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'services',
'field' => 'slug',
'terms' => $term->slug,
)
)
));
while ( $query->have_posts() ) { # внутренний цикл
$query->the_post();
?>
<li class="uslugi-li"><?php echo '<a href="'. get_permalink( $post->ID ) .'" title="'. $post->post_title .'">'. $post->post_title .'</a>';?><?php echo '<a href="'. esc_url('/kontakty') .'">';?>Сделать заказ</a><span style="position: relative;left: -110px;">ID <?php the_id ($post->ID) ?></span></li>
<?php
} # конец внутреннего
echo "</ul></ul></div>";
};?>
<?php wp_reset_postdata();?>
</div>
В итоге, если мы находимся на странице
http://localhost:8089/services/business/
, то в шаблоне
taxonomy-services-business.php выводится:
<div style="position:relative;">
<ul class="taxonomy_uslugi_wrapper">
<li><h2><a href="">Название термы 1</a></h2></li>
<ul class="uslugi_term">
<li class="uslugi-li"><a href="" title="">Запись № 3 (в Название термы 1) </a><a href="">Сделать заказ</a><span style="position: relative;left: -110px;">ID 1086</span></li>
</ul>
</ul>
<ul class="taxonomy_uslugi_wrapper">
<li><h2><a href="">Название термы 2</a></h2></li>
<ul class="uslugi_term">
<li class="uslugi-li"><a href="" title="">Запись № 1 (в Название термы 2) </a><a href="">Сделать заказ</a><span style="position: relative;left: -110px;">ID 1086</span></li>
</ul>
</ul>
</div>
Т.е. вывод при нахождении на странице
http://localhost:8089/services/business/
, в шаблоне
taxonomy-services-business.php такой:
1. Поросята
1.1. Нуф-Нуф
1.2. Ниф-Ниф
1.3. Наф-Наф
2. Слова
2.1. Слова для добра
2.2. Слова для зла
Где
1. Поросята и
2. Слова - термы;
Где
1.1. Нуф-Нуф и
2.1. Слова для добра и т.п. - записи относящиеся к соответствующей терме
http://localhost:8089/services/business/
Только вот , так и не получилось сделать вывод меток...
По факту получилось сделать вывод ссылок на термы и ссылок на записи привязанные к этим термам конкретной таксономии. Но в целом, именно этого я и добивался.