个性化阅读
专注于IT技术分析

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

我试图显示带有嵌套子类别的WordPress类别的列表。到目前为止, 我只能获得父类别列表或不包括父类别的子类别列表, 但是我无法将两者结合在一起。

这是我要创建的结果:

  • 父类别
    • 子类别
    • 子类别
  • 父类别
    • 子类别
  • 父类别
    • 子类别
    • 子类别
    • 子类别

编辑:

这样做的想法是创建一个自定义类别页面。 HTML如下:

<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>

#1


你可以使用wp_list_categories()函数, 该函数使用以下默认值:

<?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
)); ?>

因此, 从技术上讲, 你可以说:

wp_list_categories();

这将列出你的类别, 并按层次结构隐藏所有空类别, 并在所有类别上方添加标题”类别”。

编辑-父母与子女分开

你可以结合使用wp_list_categories()和get_categories()函数来尝试类似的操作。

<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>

#2


最好的选择是扩展Walker类以遍历类别…最简单的方法是创建自己的Widget。

这是我之前创建的一个文件:https://www.dropbox.com/s/mazpb4cxmqracwo/adv_categories.zip

我不会假装它具有100%的功能, 但是它使我可以在博客上包含带有子类别的类别。

赞(0) 打赏
未经允许不得转载:srcmini » WordPress-类别和子类别的嵌套列表
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏