В настоящее время я пытаюсь перечислить текущее сообщение для определенного термина - например, навигации - и оно у меня работает, за исключением того, что порядок не отображается, как они появляются в WordPress.
Я хочу, чтобыбыть
Родитель
- Ребенок
- Ребенок
Родитель
- Ребенок
Но вместо этого, это просто случайно и делает
Родитель
Родитель
Ребенок
Ребенок
Где родители находятся в ASC, а дети -в порядке ASC (по крайней мере, кажется, что это то, что происходит), но это не поддерживает правильные отношения между родителями и детьми.
<ul class="guide__sidenav">
<?php
$terms = wp_get_post_terms( $post->ID, 'guide_category');
$terms_ids = [];
foreach ( $terms as $term ) {
$terms_ids[] = $term->term_id;
}
$args = array(
'post_type' => 'guide',
'orderby' => 'name',
'order' => 'ASC',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'guide_category',
'field' => 'term_id',
'terms' => $terms_ids
)
),
);
$query = new WP_Query($args);
$current_id = $post->ID;
// query_posts('orderby=name');
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
global $post; ?>
<?php
if ($post->post_parent) { ?>
<li class="child">
<?php $current_class = ( $current_id == $post->ID ) ? 'class="active"' : ''; ?>
<a <?php if ( $current_class ) echo $current_class; ?> href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php } else { ?>
<li class="parent">
<?php $current_class = ( $current_id == $post->ID ) ? 'class="active"' : ''; ?>
<a <?php if ( $current_class ) echo $current_class; ?> href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php }
?>
<?php }
}
wp_reset_query(); ?>
</ul>