向孩子展示自定义分类术语

时间:2018-06-16 14:11:30

标签: php wordpress custom-post-type custom-taxonomy

我有WP Jb管理器插件,我认为它只是一个自定义的职位类型。我已经启用了类别创建的一些类别。

我只需要显示每个类别的子项而不是整个类别列表。

我有以下代码:

<?php
$terms = get_terms( 'job_listing_category', 'orderby=count&hide_empty=0' );
$count = count($terms);
if ( $count > 0 ){
 echo "<ul>";
 foreach ( $terms as $term ) {
   echo "<li>" . $term->name . "</li>";

 }
 echo "</ul>";
}
?>

其中输出所有类别(父级和子级)的列表,如下所示:

  • 办公室
  • 仓库
  • 制造
  • 工业
  • 构建
  • 建筑服务工程师

父类别是大胆的:办公室,工业和建筑。我想拍摄其中一个并仅显示该类别的孩子。

例如:get_category('industrial', 'children_of')(我知道这不是正确的语法),所以它会导致仅显示工业类别的孩子:

  • 仓库
  • 制造

我似乎找不到办法 - 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您可以获取父类别,然后为每个子类别构建一个列表,如下所示:

<?php
$taxonomies = get_terms(array(
    'taxonomy' => 'job_listing_category',
    'hide_empty' => false,
    'parent' => 0,
));

if (!empty($taxonomies)):
    foreach ($taxonomies as $parent) {
        $output = '<ul>';
        $children = get_terms(array(
            'taxonomy' => 'job_listing_category',
            'parent' => $parent->term_id,
            'hide_empty' => false,
        ));
        foreach ($children as $child) {
            $output .= '<li>' . esc_html($child->name) . '</li>';
        }
        $output = '</ul>';
    }
    echo $output;
endif;

请注意,代码未经过测试。在此处查找更多信息:https://developer.wordpress.org/reference/functions/get_terms/

答案 1 :(得分:1)

我设法使用以下代码执行此操作:

<?php
$terms = get_terms( 'job_listing_category', 'parent=59' );
$count = count($terms);
if ( $count > 0 ){
 echo "<ul>";
 foreach ( $terms as $term ) {
   echo "<li>" . $term->name . "</li>";

 }
 echo "</ul>";
}
?>