Имя поста таксономии не восстанавливается - PullRequest
0 голосов
/ 21 марта 2019

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

  • Миан категория 1 .Детский 1 .Пост 1Пост 2.Пост 3 .Ребенок 10 .Пост 11.Пост 21.Пост 31
  • Основная категория 2 .Ребенок 4 .Пост 5.Пост 6.Пост 7

Моя функция такая

     function carMegaMenu()
     {
     $result ='<div class="side-menu">';
     $result .='<ul>';

     $taxonomies = get_terms(array('taxonomy' => 'product_categories','parent' => 0 , 'hide_empty' => false,));
     foreach ($taxonomies  as $taxonomy) {
         $cat_name= $taxonomy->name;
         $result .='<li><h3 class="cat-m">'.$cat_name.'</h3>';
         // first child taxonom
         $result .='<ul>';
         $taxonomies_child = get_terms(array('taxonomy' => 'product_categories','parent' => $taxonomy->term_id , 'hide_empty' => false,));
         foreach ($taxonomies_child  as $taxonomy_child) {
             $child_cat_name = $taxonomy_child->name;
             $slug = $taxonomy_child->slug;
             $result .='<li>';
             $result .='<h3 class="cat-m">'.$child_cat_name.'</h3>';
         // posts in taxonomy
         $result .='<ul>';
        $tax_post_args = array(
          'post_type' => 'products', // your post type
          'posts_per_page' => 999,
          'orderby' => 'id',
          'order' => 'ASC',
          'tax_query' => array(
              array(
                  'taxonomy' => 'product_categories', // your taxonomy
                  'field' => 'slug',
                  'terms' => $slug
              )
          )
      );    
         $tax_post_qry = new WP_Query( $tax_post_args );
         if($tax_post_qry->have_posts()) {   
         while ( $tax_post_qry->have_posts()) {

                          $result .='<li><a href="'. get_permalink().'">'.the_title().'</a></li>';

                     }            

    }

         $result .='</ul>';
         $result .='</li>';


         $result .='</ul>';
         $result .='</li>';
     }

     $result .='</ul>';
     $result .='</div>';

 }
 if ($result) {
         return $result;
     } else {
         return "";
     }

}

Проблема здесь в этом цикле

while ( $tax_post_qry->have_posts()) {

                          $result .='<li><a href="'. get_permalink().'">'.the_title().'</a></li>';

                     }  

1 Ответ

0 голосов
/ 22 марта 2019

Пожалуйста, используйте приведенный ниже код и дайте мне знать, если это работает

while ( $tax_post_qry->have_posts() ) {
    $tax_post_qry->the_post();
    echo '<li><a href="'. get_permalink().'">' . get_the_title() . '</a></li>';
}
...