Показать все сообщения под дочерней дочерней категорией в боковой панели на странице сообщений?

Я пытаюсь создать специальную боковую панель для своих сообщений в определенных категориях. Это будет выглядеть примерно так.

введите описание изображения здесь

Структура моей категории выглядит так:

  • Родитель 1
    • Ребенок 1
      • Sub Child 1
      • Sub Child 2
    • Ребенок 1
      • Sub Child 1
      • Sub Child 2
  • Родитель 2

Что я хочу сделать, так это отобразить все сообщения в Sub Child 1 и 2. Я буду более конкретным, скажем, у нас есть 3 сообщения, 2 из них находятся под дочерним юнитом 1, а последний – под дочерним. 2. Тогда я только хотите, чтобы 2 сообщения, которые находятся под дочерним юнитом 1, отображались под Sub child 1, а 3-я позиция отображалась только под дочерним элементом 2.

Я просматриваю через 2 дня через Интернет, чтобы понять, как это сделать, но я не понимаю, что я делаю неправильно.

Вот мой код и то, что я пытаюсь изменить:

<?php $cat = get_the_category(); $catID = get_cat_ID($cat); $subcats = get_categories('child_of=' . $catID); foreach($subcats as $subcat) { echo '<h3>'; echo '<a href="' . get_category_link($subcat->cat_ID) . '">'; echo '/' . $subcat->cat_name . ''; echo '</a></h3>'; echo '<ul>'; $subcat_posts = get_posts('cat=' . $subcat->cat_ID); foreach($subcat_posts as $subcat_post) { $postID = $subcat_post->ID; echo '<li>'; echo '<a href="' . get_permalink($postID) . '">'; echo get_the_title($postID); echo '</a></li>'; } echo '</ul>'; } ?> 

Есть идеи?

Solutions Collecting From Web of "Показать все сообщения под дочерней дочерней категорией в боковой панели на странице сообщений?"

Я думаю, вы могли бы сделать большой шаг, используя wp_list_categories() с помощью walker чтобы добавить дополнительный неупорядоченный список к каждому элементу.

Код :

 $cat_id = get_query_var( 'cat' ); $subcats = get_categories( 'child_of=' . $cat_id ); // child categories class Cat_Walker extends Walker_Category { function end_el( &$output, $page, $depth = 0, $args = array() ) { $posts = get_posts( 'cat=' . $page->term_id ); if ( sizeof( $posts ) > 0 ) { $output .= '<ul>'; foreach ( $posts as $post ) { $output .= sprintf( '<li><a href="%1$s">%2$s</a></li>', get_permalink( $post->ID ), $post->post_title ); } $output .= '</ul>'; } $output .= '</li>'; } } foreach ( $subcats as $subcat ) { $subsubcats = get_categories( 'child_of=' . $subcat->term_id ); // sub child categories foreach ( $subsubcats as $subsubcat ) { $args = array( 'title_li' => '', 'show_option_none' => '', 'taxonomy' => 'category', 'child_of' => $subsubcat->term_id, 'walker' => new Cat_Walker( ) ); wp_list_categories( $args ); } } 

Наконец, после поиска весь день .. сбор и комбинирование кода .. это он:

 <?php $categories = get_categories('child_of='.get_queried_object()->term_id); if(!empty($categories)): foreach ($categories as $category) { $category_id = $category->term_id; query_posts('cat='.$category_id."&order=ASC"); if ( have_posts() ) : ?> <h3><?php echo $category->name; ?><span></span></h3><?php while ( have_posts() ) : the_post(); ?><ul><li><a href="<?php the_permalink();?>"><?php the_title(); ?></a></li></ul><?php endwhile;?><?php endif; } endif; ?> 

наслаждайся этим 🙂

Функция для получения всех категорий и их должности для определенной родительской категории

 function get_cat_subcat_posts($catid){ $categories = get_categories('child_of='.$catid); if(!empty($categories)): foreach ($categories as $category) { $category_id = $category->term_id; query_posts('cat='.$category_id."&order=ASC"); if ( have_posts() ) : ?> <div class="detail_row"> <h3><?php echo $category->name; ?><span></span></h3> <ul> <?php // Start the Loop. while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink();?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> </div> <?php endif; wp_reset_query(); // Recall the category posts function get_cat_subcat_posts($category_id); } endif; }