代码之家  ›  专栏  ›  技术社区  ›  Davide Giorgetta

在循环的不同部分显示特定类别的级别

  •  0
  • Davide Giorgetta  · 技术社区  · 8 年前

    我需要在Wordpress循环中组合两件事。

    首先,我想显示所有类别中每二级类别(示例中的C1.1和C2.1)的类别名称。

    然后,我想在每个第二级类别标题下放一个表。它们的列数应与每个第二级类别的第三级(如示例中的C1.1.1)相同。在每个专栏里,我想展示第三级分类的每个帖子。

    类别层次结构:

    C1
    — C1.1
    — — C1.1.1
    — — C1.1.2
    — — C1.1.3
    C2
    — C2.1
    — — C2.1.1
    — — C2.1.2
    ...
    

    这是一个例子:

    C1.1

    +——————————+——————————+——————————+
    |  C1.1.1  |  C1.1.2  |  C1.1.3  |
    +——————————+——————————+——————————+
    |   Post   |   Post   |   Post   |
    |   Post   |   Post   |          |
    |          |   Post   |          |
    +——————————+——————————+——————————+
    

    C2.1

    +——————————+——————————+
    |  C2.1.1  |  C2.1.2  |
    +——————————+——————————+
    |   Post   |   Post   |
    |   Post   |   Post   |
    |   Post   |   Post   |
    |          |   Post   |
    |          |   Post   |
    +——————————+——————————+
    

    ...

    是否可以在自定义模板页面中执行此操作?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Priyanka Modi    8 年前

    试试这个,

    <?php
    //Get All Categories like Parent, parent of child, child of subchild (Level 0 , 1, 2)
    $taxonomy = 'category'; //Choose the taxonomy
    $terms = get_terms( $taxonomy ); //Get all the terms
    
    foreach ($terms as $term) { //Cycle through terms, one at a time
    
      // Check and see if the term is a top-level parent. If so, display it.
      $parent = $term->parent;
      if ( $parent=='0' ) {
    
          $term_id = $term->term_id; //Define the term ID
          $term_link = get_term_link( $term, $taxonomy ); //Get the link to the archive page for that term
          $term_name = $term->name;
          //Main Category
          echo '<a class="ccats" href="' . $term_link . '"><span class="label">' . $term_name . '</span></a><br/>';
    
            $childargs = array('parent' => $term_id);
            $childcategories = get_categories( $childargs );
            foreach($childcategories as $childcategory) {
                $childterm_id = $childcategory->term_id;
                //Parent of Child Category
                echo '<p>Category: <a href="' . get_category_link( $childcategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $childcategory->name ) . '" ' . '>' . $childcategory->name.'</a> </p> ';
    
                    $subchildargs = array('parent' => $childterm_id);
                    $subchildcategories = get_categories( $subchildargs );
                    foreach($subchildcategories as $subchildcategory) {
                      //Parent of Child of Subchild Category
                        echo '<p>SubCategory: <a href="' . get_category_link( $subchildcategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $subchildcategory->name ) . '" ' . '>' . $subchildcategory->name.'</a> </p> ';
                      }
              }
          }
    }
    ?>