dongzao3923 2014-05-14 13:58
浏览 109
已采纳

Wordpress - 嵌套的类别和子类别列表

Im trying to display a list of my wordpress categories with nested subcategories. So far i've only been able to get a list of parent categories or a list of subcategories excluding parents but I haven't been able to join the two together.

This is the sort of result I am looking to create:

  • Parent Category
    • Subcategory
    • Subcategory
  • Parent Category
    • Subcategory
  • Parent Category
    • Subcategory
    • Subcategory
    • Subcategory

EDIT:

The idea for this is to create a custom category page. The HTML is as follows:

<h1>Categories</h1>
<ul class="blocks">
    <li>
        <img src="http://placehold.it/250x250" alt="title" />
        <h2>Parent Category</h2>
        <ul class="models">
            <li><a href="#">Sub Category</a></li>
            <li><a href="#">Sub Category</a></li>
        </ul>
    </li>
    <li>
        <img src="http://placehold.it/250x250" alt="title" />
        <h2>Parent Category</h2>
        <ul class="models">
            <li><a href="#">Sub Category</a></li>
            <li><a href="#">Sub Category</a></li>
            <li><a href="#">Sub Category</a></li>
        </ul>
    </li>
</ul>
  • 写回答

2条回答 默认 最新

  • dsfd3546 2014-05-14 14:20
    关注

    You can use wp_list_categories() function which uses these defaults:

    <?php wp_list_categories(array(
        'show_option_all'    => '',
        'orderby'            => 'name',
        'order'              => 'ASC',
        'style'              => 'list',
        'show_count'         => 0,
        'hide_empty'         => 1,
        'use_desc_for_title' => 1,
        'child_of'           => 0,
        'feed'               => '',
        'feed_type'          => '',
        'feed_image'         => '',
        'exclude'            => '',
        'exclude_tree'       => '',
        'include'            => '',
        'hierarchical'       => 1,
        'title_li'           => __( 'Categories' ),
        'show_option_none'   => __( 'No categories' ),
        'number'             => null,
        'echo'               => 1,
        'depth'              => 0,
        'current_category'   => 0,
        'pad_counts'         => 0,
        'taxonomy'           => 'category',
        'walker'             => null
    )); ?>
    

    So technically you can just say:

    wp_list_categories();
    

    And this will list your categories hierarchically hiding any empty categories and adding a title of "Categories" above them all.

    EDIT - Separate Parents and Children

    You can try something like this, this using a combination of both wp_list_categories() and the get_categories() function.

    <h1>Categories</h1>
    <ul class="blocks">
    <?php $parents = get_categories(array('hierarchical' => false));
        if(!empty($parents)){
            foreach($parents as $parent){
    ?>
            <li>
                <h2><?php echo $parent->name; ?></h2>
                <ul class="models">
                    <?php wp_list_categories(array('hierarchical' => false, 'child_of' => $parent->term_id)); ?>
                </ul>
            </li>
    <?php
            }
        } else { 
    ?>
        <li>No Categories</li>
    <?php } ?>
    </ul>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?