首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress为特定帖子提供分层布局的自定义分类

问Wordpress为特定帖子提供分层布局的自定义分类
EN

Stack Overflow用户
提问于 2021-04-09 22:57:40
回答 1查看 30关注 0票数 1

我正在尝试将帖子自定义分类法拉入页面。类别有子类别,我正在努力解决如何以层级方式列出子类别。目前我使用的是下面显示的类别,但它们都是混乱的。

代码语言:javascript
复制
$terms = get_the_terms( $post_id, 'listing_category' );
if ( $terms && ! is_wp_error( $terms ) ) : 
$categories = array();
foreach ( $terms as $term ) {
    $categories[] = $term->name;
}
$categories_list = join( ", ", $categories ); ?>
    <tr>
        <td><strong>Categories: </strong></td>
        <td><?php  esc_html_e( $categories_list ) ?></td>
    </tr>
<?php endif; ?>

我尝试了许多选项,但它们似乎都显示了该自定义分类中的所有类别和子类别,而不仅仅是与本文相关的类别。

任何帮助或指导都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-04-10 01:05:42

您应该获取父分类法,然后对于每个父分类法,使用循环(Foreach)获取它们的子代。

1-通过以下查询查找父分类:

代码语言:javascript
复制
$args = array (
         'taxonomy'   => 'listing_category',
         'parent'     => 0,
         'hide_empty' => false
        );
$allTaxParent = get_categories($args);

2-现在创建一个从parent获取子代的函数:

代码语言:javascript
复制
function getChildren( $termId=0, $taxonomy='category' ) {
         $children = get_categories( 
                         [
                            'child_of'      => $termId,
                            'taxonomy'      => $taxonomy,
                            'hide_empty'    => false
                         ]
                      );
        return ($children);
}

3-现在你有了层次结构的分类法:

代码语言:javascript
复制
foreach ( $allTaxParent as $tax ) {

    $children = getChildren($tax->term_id, $tax->taxonomy);

    echo $tax->name . '>';
    foreach ($children as $child){
       echo $child->name . '>';
    }
    echo '<br>';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67023469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档